proxy代理学习笔记

  1. 今天学习proxy代理,感觉很难,因为不能看源码Proxy.newProxyInstance()方法理解起来很难,所以就试
  2. 了又尝试,将我自己的理解写下来:
  3. Object java.lang.reflect.Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, 
  4. InvocationHandler h) throws IllegalArgumentException
  5. 使用这个方法,目的是将返回值转换为接口的对象。这样就实现了代理
  6. 第一个参数"ClassLoader loader," 要代理的那个已经实现接口的类,就用那个类的类
  7. 名..class.getClassLoader(),我们使用代理的目的就是为了返回一个这个类已经实现了的接口的对象
  8. 第二个参数" Class<?>[] interfaces"用这类的类名.class.getInterFaces()。
  9. 第三个参数 实现 InvocationHandler接口的类的对象。
  10. 这个类中的方法如下:(我的例子)
  11. public class proxyDog implements InvocationHandler {
  12.     Dog target;
  13.     
  14.     
  15.     public Dog getTarget() {
  16.         return target;
  17.     }
  18.     public void setTarget(Dog target) {
  19.         this.target = target;
  20.     }
  21.     public Object invoke(Object proxy, Method method, Object[] args)
  22.             throws Throwable {
  23.         // TODO Auto-generated method stub
  24.         System.out.println("开始拦截");
  25.          Object obj = method.invoke(target, args);
  26.             System.out.println("拦截后");
  27.         return obj;
  28.     }
  29. }
  30. Dog 类就是第一个参数中实现接口的那个类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值