getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
同样类似的还有getConstructors()和getDeclaredConstructors()、getMethods()和getDeclaredMethods(),这两者分别表示获取某个类的方法、构造函数。
然而我想获取到类中的所有字段及其父类中的所有字段
//获取对象及其父类所有属性
Field[] fields = null;
//newObject是传入对象
Class<?> clazz = newObject.getClass();
for (; clazz != Object.class; clazz = clazz.getSuperclass()) {//向上循环 遍历父类
Field[] field = clazz.getDeclaredFields();
//hutool工具包,合并两个数组
fields = ArrayUtil.addAll(fields,field);
}
网友评论