使用java反射获取由代理表示的对象

时间:2010-09-10 12:36:06

标签: java reflection proxy

假设我有一个对象的代理,我可以通过反射或其他技术以某种方式访问​​该对象吗?

3 个答案:

答案 0 :(得分:1)

“代理对象”是什么意思?如果您指的是java.lang.reflect.Proxy实例的调用处理程序:

InvocationHandler handler = Proxy.getInvocationHandler(proxy);

答案 1 :(得分:1)

不,因为代理甚至不是一个“真正的”对象。从the javadoc,您可以看到您可以轻松访问的唯一对象是调用处理程序。达到此处理程序后,这是一个实现问题:

  • 您可能会遇到n个调用处理程序,它保留对代理对象的引用(作为装饰器类型的示例)
  • 但您也可以没有其他参考(例如,在使用代理实施Null object pattern时)。

答案 2 :(得分:0)

如果您拥有对象的代理,则可以使用代理来访问该对象。

proxy - 服务的接口,特别是对于远程,资源密集或难以直接使用的服务的接口。 (wiktionary)