亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于Field對象的問題

背景:不考慮訪問控制權限問題,默認public

代碼

Field?f?=?e.getClass().getField("p_int");
//?f是一個Field對象,即實例域對象
Object?v?=?f.get(e);
//?f.get(e)?查看API文檔,即返回對象參數中名為f的值
System.out.println(v);
//?這里v是一個int,通過自動裝箱最后再輸出。

問題:這里通過反射查看e中的"p_int"域的值,不太理解的是,按照我這種低端選手的思維,e對象中名為f的域的值,寫法應該是"v.get(f)",雖然我非常清楚v沒有get這個函數,也非常清楚按照API"f.get(v)",才是正確的用法,但是還是非常的難以理解,求解答

正在回答

1 回答

反射的思想就是用Field對象來代理e這個對象來操作,也就是e對象只是Field對象的一個傳進來的參數

所以用f.get(e); 如果 直接e.get(v)那就是直接操作e對象,就不是反射了

2 回復 有任何疑惑可以回復我~
#1

Antique 提問者

謝謝,很清楚
2017-08-30 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于Field對象的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號