黑马程序员技术交流社区

标题: Proxy动态生成的类只能是接口的类,这是why? [打印本页]

作者: 刘乃宽    时间: 2013-7-26 20:58
标题: Proxy动态生成的类只能是接口的类,这是why?
本帖最后由 杨兴庭 于 2013-7-29 11:04 编辑
  1. /**

  2.          * 练习使用代理,添加功能

  3.          * @param args

  4.          */

  5.         public static void main(String[] args) {

  6.                 // TODO Auto-generated method stub

  7.                 HashSet has =(HashSet)Proxy.newProxyInstance(

  8.                                 //这一步是告诉proxy用哪个类加载器加载这个类

  9.                                 HashSet.class.getClassLoader(),
  10.                                 //这一步是为了告诉动态生成类的proxy,要生成什么样的类

  11.                                 new Class[]{HashSet.class},
  12.                                 //这个参数是代理的关键参数,这个参数的作用是对要代理的方法进行操作

  13.                                 new InvocationHandler() {

  14.                                         HashSet set = new HashSet();

  15.                                         @Override

  16.                                         public Object invoke(Object proxy, Method method, Object[] args)

  17.                                                         throws Throwable {

  18.                                                 // TODO Auto-generated method stub

  19.                                         Object retVal = method.invoke(set, args);

  20.                                                 return retVal;

  21.                                         }

  22.                                 }

  23.                                 );

  24.                 //has.hashCode();

  25.                 has.add("hllo");

  26.                
  27.         }
复制代码

作者: 草貌路飞    时间: 2013-7-27 00:40
代理的api说了,代理只是面向接口的。不过老师讲的时候不是说有个CGLIB库可以为没有接口的类代理吗 你可以试试
作者: toShareBeauty    时间: 2013-7-28 13:28
请先写下你自己的分析!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2