遍历类和其父类中的元素属性,并取出其中值
public static boolean checkObjAllFieldsIsNull(Object object) {
if (null == object) {
return true;
}
try {
List<Field> fieldList = new ArrayList<>();
Class tempClass = object.getClass();
while (null != tempClass){//当父类为null的时候说明到达了最上层的父类(Object类)
fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields()));
tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己
}
for (Field f : fieldList) {
f.setAccessible(true);
System.out.print(f.getName() + ":");
System.out.println(f.get(object));
if(f.getName().equals("serialVersionUID")){
continue;
}
if (f.get(object) != null && StringUtils.isNotBlank(f.get(object).toString())) {
return false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
其中tempClass.getDeclaredFields()不判断类型, 会获取所有的属性,包括private,public,protected 而tempClass.getFields()只获取public的属性;