首页 > 代码库 > 动态代理
动态代理
1 package DynamicProxy; 2 3 import java.lang.reflect.InvocationHandler; 4 import java.lang.reflect.Method; 5 import java.lang.reflect.Proxy; 6 7 interface AbstractClass { 8 public void show(); 9 }10 11 class ClassA implements AbstractClass {12 public void show() {13 System.out.println("I am A !");14 }15 }16 17 class ClassB implements AbstractClass {18 public void show() {19 System.out.println("I am B !");20 }21 }22 23 class Invoker implements InvocationHandler {24 AbstractClass ac;25 public Invoker(AbstractClass ac) {26 this.ac = ac;27 }28 29 @Override30 public Object invoke(Object proxy, Method method, Object[] args)31 throws Throwable {32 method.invoke(ac, args);33 return null;34 }35 36 }37 38 public class DynamicProxyTest {39 public static void main(String[] args) {40 41 Invoker invoker1 = new Invoker(new ClassA());42 AbstractClass ac1 = (AbstractClass) Proxy.newProxyInstance(AbstractClass.class.getClassLoader(), new Class[] {AbstractClass.class}, invoker1);43 ac1.show();44 45 Invoker invoker2 = new Invoker(new ClassB());46 AbstractClass ac2 = (AbstractClass) Proxy.newProxyInstance(AbstractClass.class.getClassLoader(), new Class[] {AbstractClass.class}, invoker2);47 ac2.show();48 }49 }
动态代理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。