如何为作为参数提供的类创建代理

时间:2014-11-04 09:27:59

标签: java generics proxy

所以我试图为作为参数的类创建代理。

public static Object lookup(Class<?> cl,
                            CommunicationModule communicationModule) {
    InvocationHandler handler = new InvocationHandler() { ... };
    cl proxy = (cl) Proxy.newProxyInstance(cl.class.getClassLoader(),
                                           new Class[] { cl.class }, handler);
    return proxy;
}

但由于某种原因,这并不起作用。这有什么问题?

1 个答案:

答案 0 :(得分:1)

cl是参数的名称,而不是类型。

我认为.newProxyInstance()方法的返回类型为Proxy(或Object),因此您只需执行以下操作:

Object proxy = Proxy.newProxyInstance(cl.class.getClassLoader(),
                                     new Class[] { cl }, 
                                     handler);