• 动态代理


     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     @Override
    30     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 }
    我喜欢一无所有,这样就只能一步一步的创造世界...
  • 相关阅读:
    在给定的区间上对每个数都开方 最后还是在一段上求和
    简单的覆盖问题,,通过覆盖的g不同 有这不同的价值 最后还是一段上求和
    codevs 3094 寻找sb4
    noi 04:网线主管
    codevs 1031 质数环
    codevs 1061 重复子串
    codevs 1204 寻找子串位置
    codevs 3223 素数密度
    各种用法
    codevs1073 家族
  • 原文地址:https://www.cnblogs.com/riordon/p/4018337.html
Copyright © 2020-2023  润新知