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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高庆亮 黑马帝   /  2011-11-21 18:12  /  2504 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高庆亮 于 2011-11-22 14:53 编辑

Class clazzProxy1 = Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
这句话的意思是 动态获得代理Collection类的字节码么?如果是的话,它和正常的反射获得Collection类的字节码有什么区别?为什么还需要个类加载器。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

4 个回复

倒序浏览
ZHB 黑马帝 2011-11-21 18:51:39
沙发
兄弟,帮你顶贴!!!!!!!
回复 使用道具 举报
因为getProxyClass返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。该代理类将由指定的类加载器定义,并将实现提供的所有接口。它接受两个参数:loader - 定义代理类的类加载器i,nterfaces - 代理类要实现的接口列表。interfaces 数组中的所有 Class 对象必须表示接口,而不能表示类或基本类型。因为接受的是Class对象,所以要获得接口的字节码,和正常的反射获得字节码没有区别。还有,给你纠正一下,这里的Collection是接口,不是类。

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
建立动态代理类
Class clazz =Proxy.getProxyClass(ProxyTest.class.getClassLoader(),ProxyTest.class());
然后建立构造函数,方法,并实例化。
           1 要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能
        2 编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同
         方法,并在调用方法时加上系统功能的代码
        3 如果采用工厂模式和配置文件的方式进行管理,则不需要改写客户端程序,在配置文件中
          配置是使用目标类,还是代理类,这样以后很容易切换

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1

查看全部评分

回复 使用道具 举报
李龙龙 发表于 2011-11-22 02:03
建立动态代理类
Class clazz =Proxy.getProxyClass(ProxyTest.class.getClassLoader(),ProxyTest.class()); ...

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