鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ eclipse調(diào)試窗口的value欄的$符號代表什么意思?

eclipse調(diào)試窗口的value欄的$符號代表什么意思?

自定義Movable接口實現(xiàn)動態(tài)代理

  • 為什么返回的prnull?
  • 且調(diào)試窗口value欄的 $Proxy0, 的$代表什么意思?

clipboard.png

回答
編輯回答
伐木累

答案如下:

  1. 為什么Proxy.newProxyInstance(...)返回的代理對象顯示值為null.
    因為代理對象的值長啥樣是由InvocationHandler的實現(xiàn)類(即這里的參數(shù)h)中的invoke(...)方法的返回值決定. lz在當時debug時, invoke()方法return null, 所以, 這里會顯示null.
  2. 調(diào)試窗口value欄的 $Proxy0.
    這是因為Java底層通過反射動態(tài)生成了一個類, 類名恰好就是: com.sun.proxy.$Proxy0, 并且實現(xiàn)了接口: 參數(shù)interfaces決定的接口.

這樣, 調(diào)試時, value欄自然顯示: $Proxy0了, $符號只是名字的一部分.

2017年11月27日 17:30