黑马程序员技术交流社区
标题:
看不懂
[打印本页]
作者:
crazy_primitive
时间:
2013-7-19 10:16
标题:
看不懂
本帖最后由 crazy_primitive 于 2013-7-19 14:13 编辑
public class ProxyTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Class clazzProxy1 = Proxy.getProxyClass(Collection.class.getClassLoader(),Collection.class);//创建动态代理类
System.out.println(clazzProxy1.getName()); // 打印的是 $Proxy0 ,这是什么东西?为什么会这样表示?
复制代码
作者:
王靖远
时间:
2013-7-19 10:37
$Proxy0 前面是类型代理类型。0好像是代理的编号。
作者:
wedge
时间:
2013-7-19 11:30
上面代码生成了一个名叫$Proxy0的对象,那它所对应的java文件就是$Proxy0.java,对应的class文件是$Proxy0.class
作者:
冒烟的芒果
时间:
2013-7-19 11:48
百度了一下,Proxy.getProxyClass(Collection.class.getClassLoader(),Collection.class) 根据参数loader和interfaces调用方法 getProxyClass(loader, interfaces)创建代理类$Proxy.$Proxy0类实现了Collection接口,并继承了Proxy类.接着$Proxy0调用父类Proxy的构造器,实例化$Proxy0;
也就是说 $Proxy0 一个代理类的类名,clazzProxy1是对它的实例化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2