MRa*_*ser 9 java reflection proxy-classes dynamic-proxy
解包动态代理以检索下面的原始对象的最佳方法是什么?动态代理已使用创建java.lang.reflect.Proxy.newProxyInstance()
谢谢.
NPE*_*NPE 12
每个代理都InvocationHandler与之关联.只有InvocationHandler知道哪个对象(如果有的话)是代理的基础.如果你控制代理的创建,那么你可以提供你自己的InvocationHandler,你将拥有你想要的额外功能(即能够披露底层对象.)如果你没有,那么我恐怕你出去了好运
iir*_*ekm 12
没有好的方法:Proxy.getInvocationHandler(proxy)返回处理程序,但问题是从处理程序中提取原始对象.如果你的处理程序是一个匿名类,提取原始对象的唯一方法是使用反射并从名为val $的字段中提取原始东西 - 非常难看的方法.更好的方法是使用getter创建非匿名处理程序类,然后执行以下操作:
((YourHandler)Proxy.getInvocationHandler(proxy)).getOriginalObject()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9981 次 |
| 最近记录: |