反射獲取類的所有屬性包括父類
阿新 • • 發佈:2019-02-20
/** * 獲取所有屬性包括父類 * @param object * @return */ public static Field[] getAllFields(Object object){ Class clazz = object.getClass(); List<Field> fieldList = new ArrayList<>(); while (clazz != null){ fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields()))); clazz = clazz.getSuperclass(); } Field[] fields = newField[fieldList.size()]; fieldList.toArray(fields); return fields; }
//對屬性進行處理
for (Field field : fields) { int mod = field.getModifiers(); //跳過不可變動的常量 if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { continue; }
//設定屬性為可修改
field.setAccessible(true);
}