初學java反射的時候,聽師兄說反射得精通就是java大拿一個一個重大標誌之一。
所以當時也就,不想認真聽反射了。反正纔剛學,還不需要向大拿看齊。
然而,永遠是書到用時方恨少啊。
當問題真正擺在面前,措手不及。
這次做的項目在通過前臺模板對象準備後臺實體類對象時用到了大量的反射,
具體工作內容不做描述,只記錄一下自己在用反射時碰到的一些問題。
一.獲取值
根據已知類名和屬性拿取該屬性的值。
兩種方法:
新建Person類(姓名年齡)
1.Field field = per.getClass().getDeclaredField("name");
System.out.println(field.get(per));
拿取用戶姓名
2.PropertyDescriptor pro = new PropertyDescriptor("age",per.getClass());
Method method = pro.getReadMethod();
System.out.println(String.format("年齡:%s", method.invoke(per)));
拿取用戶年齡
個別類的使用方法可自行再研究
二:基礎,instanceof關鍵字的理解
在編譯狀態中,
class可以是object對象的父類,自身類,子類。
在這三種情況下Java編譯時不會報錯。
在運行轉態中,
class可以是object對象的父類,自身類,不能是子類。
在前兩種情況下result的結果爲true,最後一種爲false。
但是class爲子類時編譯不會報錯。運行結果爲false。
反射要學的東西太多了,先列舉這兩點,日後想起來再補充吧。
每天累死了