黑马程序员技术交流社区
标题:
动态代理类
[打印本页]
作者:
黑马振鹏
时间:
2012-7-7 21:16
标题:
动态代理类
本帖最后由 啸傲江湖007 于 2012-7-7 22:13 编辑
Collection proxy3 =(Collection) Proxy.newProxyInstance(
Collection.class.getClassLoader(),
new Class [] {Collection.class},
new InvocationHandler(){
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
//怎么理解target
ArrayList target = new ArrayList();
long beginTime = System.currentTimeMillis();
Object retVal = method.invoke(target, args);
long endTime = System.currentTimeMillis();
System.out.println(method.getName()+" running time " +(endTime-beginTime));
return retVal;
}
}
);
定义的 ArrayList target = new ArrayList();
应该怎么理解?
作者:
丁二跃
时间:
2012-7-7 22:02
这里的 target 就是被代理的类
Object retVal = method.invoke(target, args);
通过放射的方法来调用 taeget 的 方法。
作者:
温少邦
时间:
2012-7-7 22:06
target是指被代理的那个对象
这里看是不好理解
你继续看视频,会说到这个target应该放在外面
每次调用代理类的方法
就会在被代理类的方法运行前后执行你的那些代码
Object retVal = method.invoke(target, args);
就是指被代理类的原方法被调用
invoke中的那个target就是被代理的那个对象了
作者:
黑马振鹏
时间:
2012-7-7 22:12
温少邦 发表于 2012-7-7 22:06
target是指被代理的那个对象
这里看是不好理解
你继续看视频,会说到这个target应该放在外面
恩 看到了 又往下两个视频看到了 呵呵 谢啦兄弟
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2