第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

關于反射的問題

?Object fieldValue = null;
???try {
????Method getMethod = c.getMethod(getMethodName);
????fieldValue = getMethod.invoke(f);
???} catch (Exception e) {
????e.printStackTrace();

這一段代碼不是很懂,只知道與反射有關


正在回答

2 回答

?Object?fieldValue?=?null;?//定義一個object變量用語存儲對象的屬性值
???try?{
????Method?getMethod?=?c.getMethod(getMethodName);?//根據(jù)方法名字獲得這個方法
????fieldValue?=?getMethod.invoke(f);//執(zhí)行f對象的方法名為getMethodName的方法。
???}?catch?(Exception?e)?{
????e.printStackTrace();

其實,這段代碼要做的就是,根據(jù)屬性名稱獲取對象的屬性值。就是你知道了對象的屬性名,但是要獲取這個對象的值。

所以,你直接調用對象的get方法就可以得到對象的屬性值。但是因為屬性名稱是個變量,所以這時候就要通過反射來實現(xiàn)了,具體怎么實現(xiàn)呢?

1:根據(jù)屬性名稱,構造屬性方法名。比如屬性名是namecode他的get方法就是getNamecode(){......},所以方法名就是getNamecode,

2:根據(jù)方法的名稱,獲取這個方法對象Method getMethod = c.getMethod(getMethodName);

3:這個方法的方法對象你獲得了,就可以執(zhí)行這個方法了,具體它要調用一個invoke的方法,具體invoke做了什么你可以去看源碼,也可以自己了解,我可以告訴你,這句代碼:fieldValue = getMethod.invoke(f);
它相當于是f對象調用它的獲取這個屬性的屬性值的get方法。就是執(zhí)行你第2部獲取到的那個方法。

這時候,就得到了這個對象的已知屬性名稱的屬性值。

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

萬埃一塵 提問者

非常感謝!
2016-06-06 回復 有任何疑惑可以回復我~

方法反射到類從而拿到方法中的值

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于反射的問題

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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