反射遍歷所有屬性,包括父類 原

###今天做了項目的時候,反射獲取對象信息然後保存進入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();// 向上遍歷父類
			}

這樣就可以獲取所有屬性,包括父類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章