Anweisungen
1. Rufen Sie die newProxyInstance-Methode der Proxy-Klasse auf, um die Proxy-Klasseninstanz zu erhalten.
2. Diese Proxy-Klasse implementiert die angegebene Schnittstelle und verteilt Methodenaufrufe an den angegebenen Aufrufprozessor.
Methodendeklaration
public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException
Parameter
Loader: definiert den ClassLoder der Proxy-Klasse
Schnittstellen: Liste der von der Proxy-Klasse implementierten Schnittstellen
h: Aufrufprozessor, der die oben definierte InvocationHandler-Schnittstelle implementiert Klasseninstanz
Instanz
public class Main { public static void main(String[] args) { //创建中介类实例 DynamicProxy inter = new DynamicProxy(new Vendor()); //加上这句将会产生一个$Proxy0.class文件,这个文件即为动态生成的代理类文件 System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles","true"); //获取代理类实例sell Sell sell = (Sell)(Proxy.newProxyInstance(Sell.class.getClassLoader(), new Class[] {Sell.class}, inter)); //通过代理类对象调用代理类方法,实际上会转到invoke方法调用 sell.sell(); sell.ad(); } }
Das obige ist der detaillierte Inhalt vonSo generieren Sie dynamisch Proxy-Klassen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!