通過反射獲取類的屬性
先來看JDK提供的方法有如下幾種:
1.Class.getDeclaredField(String name);
返回一個
Field
對象,該對象反映此 Class
對象所表示的類或接口的指定已聲明字段。
2.Class.getDeclaredFields();
返回
Field
對象的一個數組,這些對象反映此 Class
對象所表示的類或接口所聲明的所有字段。
3.Class.getField(String name)
;
返回一個
Field
對象,它反映此 Class
對象所表示的類或接口的指定公共成員字段。
;4.Class.getField()
返回一個包含某些 Field
對象的數組,這些對象反映此 Class
對象所表示的類或接口的所有可訪問公共字段。
使用實例,方法入參: getTest(T,t)
代碼: Field[] fields = t.getClass().getDeclaredFields();
for(int f=0;f < fields.length;f++){
fields[f].setAccessible(true);
fields[f],getName();
}
這樣就能通過反射獲取到受保護的變量值了。