A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 史晓霞 黑马帝   /  2011-11-9 08:44  /  1688 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造方法接受一个InvocationHandler对象,接受对象了要干什么用?

评分

参与人数 1黑马币 +1 收起 理由
admin + 1

查看全部评分

3 个回复

倒序浏览
接收的这个对象,在这个对象中,要实现增强的功能。

评分

参与人数 1黑马币 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
InvocationHandler接口中定义的invoke方法接受的3个参数分别是,Object proxy, Method method, Object[] args 他们分别对应  对象.add(“xxx”)这句话的  对像  ,add()方法,xxx参数。
不知道这么说你能明白吗?         就是说你不是用动态代理吗?   要用动态代理完成指定的功能,那么你一定有调用动态代理的对象不是?  那个对象对应的就是object proxy    调用那个对象的方法就是  method  用于反射,调用方法传递的参数就存放在object类型的args数组中 。

评分

参与人数 1技术分 +1 黑马币 +1 收起 理由
admin + 1 + 1

查看全部评分

回复 使用道具 举报
java 代码

    public class DynamicProxy implements InvocationHandler {   
      
     private Object originalObj;   
      
      
     public Object bind(Object obj){   
         
      this.originalObj = obj;   
      return Proxy.newProxyInstance(obj.getClass().getClassLoader(),   
                              obj.getClass().getInterfaces(),   
                              this);   
     }   
        
     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {   
      // TODO Auto-generated method stub   
      System.out.println("before invoking....");   
         
      Object obj = method.invoke(originalObj,args);   
         
      System.out.println("after invoking....");   
         
      return obj;   
     }   
      
    }   
      
        

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马