Geo*_*Geo 3 java dynamic-proxy
我尝试使用Sun在其“ 代理使用情况”页面上发布的代码 ,并且尝试使用DebugProxy打印调用的方法。问题是,我要为其创建代理的对象需要有一个参数。如果尝试使用构造函数的参数创建代理,则会收到以下错误:
线程“主”中的异常java.lang.ClassCastException:$ Proxy0无法转换为myPackage.myClass
我创建了这样的代理:
MyClass mc = (MyClass) DebugProxy.newInstance(new MyClass(props));
Run Code Online (Sandbox Code Playgroud)
如何创建代理实例,并仍然调用正确的构造函数?
JDK生成的代理与您要代理的对象的类类型不同。相反,它实现了目标对象的相同接口。您需要转换为这些接口类型之一。
如果您查看链接到的页面上的示例,它将转换为Foo,而不是FooImpl。
| 归档时间: |
|
| 查看次数: |
6301 次 |
| 最近记录: |