關(guān)于Field對象的問題
背景:不考慮訪問控制權(quán)限問題,默認(rèn)public
代碼:
Field?f?=?e.getClass().getField("p_int");
//?f是一個Field對象,即實例域?qū)ο?Object?v?=?f.get(e);
//?f.get(e)?查看API文檔,即返回對象參數(shù)中名為f的值
System.out.println(v);
//?這里v是一個int,通過自動裝箱最后再輸出。問題:這里通過反射查看e中的"p_int"域的值,不太理解的是,按照我這種低端選手的思維,e對象中名為f的域的值,寫法應(yīng)該是"v.get(f)",雖然我非常清楚v沒有g(shù)et這個函數(shù),也非常清楚按照API"f.get(v)",才是正確的用法,但是還是非常的難以理解,求解答
2017-08-30
反射的思想就是用Field對象來代理e這個對象來操作,也就是e對象只是Field對象的一個傳進(jìn)來的參數(shù)
所以用f.get(e); 如果 直接e.get(v)那就是直接操作e對象,就不是反射了