日期:2014-05-20  浏览次数:20675 次

请教关于动态代理参数问题?
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
------解决方案--------------------
你就理解成被代理类吧。。

这毕竟不是国人写的,是翻译过来的。
------解决方案--------------------