eclipse调试窗口的value栏的$符号代表什么意思?

自定义Movable接口实现动态代理

  • 为什么返回的prnull?
  • 且调试窗口value栏的 $Proxy0, 的$代表什么意思?

clipboard.png

阅读 3.5k
1 个回答

答案如下:

  1. 为什么Proxy.newProxyInstance(...)返回的代理对象显示值为null.
    因为代理对象的值长啥样是由InvocationHandler的实现类(即这里的参数h)中的invoke(...)方法的返回值决定. lz在当时debug时, invoke()方法return null, 所以, 这里会显示null.
  2. 调试窗口value栏的 $Proxy0.
    这是因为Java底层通过反射动态生成了一个类, 类名恰好就是: com.sun.proxy.$Proxy0, 并且实现了接口: 参数interfaces决定的接口.

这样, 调试时, value栏自然显示: $Proxy0了, $符号只是名字的一部分.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题