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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭军亮 中级黑马   /  2013-5-29 21:13  /  985 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. ArrayList listproxy= (ArrayList) constructor.newInstance(new InvocationHandler(){      
  2.                                         @Override
  3.                                         public Object invoke(Object proxy, Method method,
  4.                                                         Object[] args) throws Throwable {
  5.                                                 // TODO Auto-generated method stub
  6.                                                 long starttime = System.currentTimeMillis();
  7.                                                 Object revalue = method.invoke(target, args);
  8.                                                 long endtime = System.currentTimeMillis();
  9.                                                 System.out.println("方法:" + method.getName() + "一共用时"
  10.                                                                            + (endtime - starttime));
  11.                                                 return revalue;
  12.                                         }
  13.                                 });
复制代码
为什么老是报告类型转换异常啊,把ArrayList换成Collection就能正常执行呢
   

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

倒序浏览
楼主请认真看下api

getProxyClass(ClassLoader loader, Class<?>... interfaces)
          返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。

api中 明确 声明 第二个参数是接口数组,也就是说 该例子接收的是Collection 接口,不是ArrayList,
也就是说该代理不具备ArrayList 特有的方法,因此不可转换,只能是Collection

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

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