黑马程序员技术交流社区
标题:
关于动态代理的问题
[打印本页]
作者:
徐启坤
时间:
2013-6-8 20:18
标题:
关于动态代理的问题
本帖最后由 徐启坤 于 2013-6-8 21:15 编辑
张老师的这段代码中有两点不明白,见代码
private static Object getProxy(final Object target,final Advice advice) {
//为什么这里的参数要用final修饰?
Object proxy3 = Proxy.newProxyInstance(
target.getClass().getClassLoader(),
/*new Class[]{Collection.class},*/
//这里应该是要接受数组形式的参数
target.getClass().getInterfaces(),
//为什么这里却没用数组??
new InvocationHandler(){
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
/*long beginTime = System.currentTimeMillis();
Object retVal = method.invoke(target, args);
long endTime = System.currentTimeMillis();
System.out.println(method.getName() + " running time of " + (endTime - beginTime));
return retVal;*/
advice.beforeMethod(method);
Object retVal = method.invoke(target, args);
advice.afterMethod(method);
return retVal;
}
}
);
return proxy3;
}
作者:
黑马伍哲沂
时间:
2013-6-8 21:03
加final是因为内部类访问外部局部变量。
另外,参数本来就是数组。因为getInterfaces()返回的是一个数组。
作者:
徐启坤
时间:
2013-6-8 21:10
本帖最后由 徐启坤 于 2013-6-8 21:15 编辑
黑马伍哲沂 发表于 2013-6-8 21:03
加final是因为内部类访问外部局部变量。
另外,参数本来就是数组。因为getInterfaces()返回的是一个数组。 ...
哦看来好几遍都没有发现,原来是用了getInterfaces(),我还以为只返回一个接口来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2