- Java code
import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;public class Client { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub RealSubject real=new RealSubject();//真实对象,也就是被代理的类 InvocationHandler dy=new DynamicSubject(real); Class<?> cl=real.getClass(); //生成代理类 Subject subject=(Subject)Proxy.newProxyInstance(cl.getClassLoader(), cl.getInterfaces(), dy); subject.request(); }}
我在Proxy.newProxyInstance中传递的第一个参数明明是真实对象,也就是被代理的类的类加载器呀,为啥,我看jdk文档中这样写的呢
public static Object newProxyInstance(ClassLoader loader,
Class<?>[] interfaces,
InvocationHandler h)
loader - 定义代理类的类加载器
interfaces - 代理类要实现的接口列表
h - 指派方法调用的调用处理程序
为什么,哪里出问题了?
------解决方案--------------------------------------------------------
mark
------解决方案--------------------------------------------------------
你就理解成被代理类吧。。
这毕竟不是国人写的,是翻译过来的。
------解决方案--------------------------------------------------------