黑马程序员技术交流社区

标题: 动态代理proxy问题! [打印本页]

作者: 高庆亮    时间: 2011-11-18 14:52
标题: 动态代理proxy问题!
Class clazzProxy1 = Proxy.getProxyClass(Collection.class.getClassLoader(), Collection.class);
                System.out.println(clazzProxy1.getName());
上面的Proxy是什么意思,它是个类还是一个对象啊,如果是一个类获取字节码class不应该是类名.class么?张老师在视频中用到proxy是随意找的一个类还是,这个类就是专门用在动态代理上的。如果是用在动态代理上的。它是怎么使用的呢?
作者: 赵磊5    时间: 2011-11-18 15:48
上面的Proxy是在java.lang.reflect包中的Proxy类.
由Proxy类的静态方法创建的动态代理类具有以下特点:
1动态代理类是public、final和非抽象类型的;
2动态代理类继承了java.lang.reflect.Proxy类;
3动态代理类的名字以“$Proxy”开头;
4动态代理类实现getProxyClass()和newProxyInstance()方法中参数interfaces指定的所有接口;
5Proxy类的isProxyClass(Class cl)静态方法可用来判断参数指定的类是否为动态代理类。只有通过Proxy类创建的类才是动态代理类;
6动态代理类都具有一个public类型的构造方法,该构造方法有一个InvocationHandler类型的参数。
作者: 高庆亮    时间: 2011-11-19 16:44
赵磊5 发表于 2011-11-18 15:48
上面的Proxy是在java.lang.reflect包中的Proxy类.
由Proxy类的静态方法创建的动态代理类具有以下特点:
1动 ...

还是没怎么太懂!
作者: 咪咪    时间: 2011-11-19 19:04
是个代理类,这个类有自己专门获取字节码的方法,这个方法有两个参数,一个是加载类一个接口类的类型,这一块比较复杂建议多看几遍就懂了。




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