说明:
1、getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
2、getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
3、同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclaredMethods(),这两者分别表示获取某个类的方法、构造函数。
获取父类所有字段:
要获取到当前类以及父类的所有属性,怎么办?
package com.hkl.modules.utils;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AnnotationUtil {
public static Field[] getAllFields(Class> clazz) {
List fieldList = new ArrayList<>();
while (clazz != null){
fieldList.addAll(new ArrayList<>(Arrays.asList(clazz.getDeclaredFields())));
clazz = clazz.getSuperclass();
}
Field[] fields = new Field[fieldList.size()];
return fieldList.toArray(fields);
}
}
测试:
public static void main(String[] args) {
DtoClass dtoClass = new DtoClass();
Field[] allFields = AnnotationUtil.getAllFields(dtoClass.getClass());
System.out.println("------------------------------------------");
for (Field allField : allFields) {
System.out.println("allField = " + allField.getName());
}
}
打印出包括父类的全部字段属性



