###今天做了項目的時候,反射獲取對象信息然後保存進入redis裏面的時候,出現了問題, ###因爲 Field[] fields = classType.getDeclaredFields(); ###只獲取當前類所有的屬性 ###如果要獲取父類的屬性,然後又不想獲取根類Object的屬性,需要寫一個循環去遍歷
// 循環遍歷,如果爲null或者是根類Object就停止
while (!Object.class.equals(classType) && classType != null) {
fields = classType.getDeclaredFields();// 獲取當前類所有的屬性
for (Field f : fields) {
f.setAccessible(true);// 設置允許獲得的權限
field = f.toString().substring(
f.toString().lastIndexOf(".") + 1); // 取屬性名稱
if (f.get(object) != null
&& !field.toLowerCase().matches(regex)) {
fieldValue = f.get(object).toString();
value.put(field, fieldValue);
}
}
classType = classType.getSuperclass();// 向上遍歷父類
}
這樣就可以獲取所有屬性,包括父類