Arahan
1. Panggil kaedah ProxyInstance baharu kelas Proksi untuk mendapatkan contoh kelas proksi.
2. Kelas proksi ini melaksanakan antara muka yang ditentukan dan mengedarkan panggilan kaedah kepada pemproses panggilan yang ditentukan.
Pengisytiharan kaedah
public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException
Parameter
pemuat: ClassLoder yang mentakrifkan kelas proksi
antara muka: Senarai antara muka yang dilaksanakan oleh kelas proksi
h: Pengendali Invocation, iaitu contoh kelas yang kami takrifkan di atas yang melaksanakan antara muka InvocationHandler
instance
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(); } }
Atas ialah kandungan terperinci Bagaimana untuk menjana kelas proksi secara dinamik dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!