取本类和父类的所有成员变量
要取本类和基类的所有成员变量,Class类中提供的两种获取类中成员变量的方法都不能直接实现这个需求,但是可以通过简单的while循环来实现。
// 取所有字段(包括基类的字段)
Field[] allFields = clazz.getDeclaredFields();
Class superClass = clazz.getSuperclass();
while (superClass != null) {
Field[] superFileds = superClass.getDeclaredFields();
allFields = ArrayUtils.addAll(allFields, superFileds);
superClass = superClass.getSuperclass();
}