反射机制动态代理

来源:互联网 发布:詹姆斯打球特点 知乎 编辑:程序博客网 时间:2024/05/01 05:10

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class DynamicProxy {
 public Object getProxy(final Object obj) {
  return Proxy.newProxyInstance(DynamicProxy.class.getClassLoader(),
    obj.getClass().getInterfaces(), new InvocationHandler() {
     public Object invoke(Object proxy, Method method, Object[] args)
       throws Throwable {
      return method.invoke(obj, args);
     }
    });
 }
}

class Test {

  public static void main(String[] args){

        DynamicProxy dp = new DynamicProxy();

        Animal(接口) bird(接口实例) = (接口)dp.getProxy(new Bird()(实现接口类的实例));

        bird.fly();

    }

}

 

接口与实现类省略...

原创粉丝点击