直接上代码
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;
}