黑马程序员技术交流社区
标题:
动态代理
[打印本页]
作者:
郭军亮
时间:
2013-5-29 21:13
标题:
动态代理
ArrayList listproxy= (ArrayList) constructor.newInstance(new InvocationHandler(){
@Override
public Object invoke(Object proxy, Method method,
Object[] args) throws Throwable {
// TODO Auto-generated method stub
long starttime = System.currentTimeMillis();
Object revalue = method.invoke(target, args);
long endtime = System.currentTimeMillis();
System.out.println("方法:" + method.getName() + "一共用时"
+ (endtime - starttime));
return revalue;
}
});
复制代码
为什么老是报告类型转换异常啊,把ArrayList换成Collection就能正常执行呢
作者:
First
时间:
2013-5-30 01:59
楼主请认真看下api
getProxyClass(ClassLoader loader, Class<?>... interfaces)
返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。
api中 明确 声明 第二个参数是接口数组,也就是说 该例子接收的是Collection 接口,不是ArrayList,
也就是说该代理不具备ArrayList 特有的方法,因此不可转换,只能是Collection
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2