java 反射獲取類中所有的屬性(含父類)
阿新 • • 發佈:2019-01-27
直接上程式碼
public static List<Field> getFieldList(Class<?> clazz){
if(null == clazz){
return null;
}
List<Field> fieldList = new LinkedList<Field>();
Field[] fields = clazz.getDeclaredFields();
for(Field field : fields){
/** 過濾靜態屬性**/
if (Modifier.isStatic(field.getModifiers())){
continue;
}
/** 過濾transient 關鍵字修飾的屬性**/
if(Modifier.isTransient(field.getModifiers())){
continue;
}
fieldList.add(field);
}
/** 處理父類欄位**/
Class<?> superClass = clazz.getSuperClass();
if (superClass.equals(Object.class){
return fieldList;
}
fieldList.add(getFieldList(superClass));
return fieldList;
}