public static void main(String[] args) throwsIntrospectionException {
SysUser obj= newSysUser();
obj.setId(1L);
obj.setUserName("测试");
obj.setCreatedDate(LocalDateTime.now());
Class> clazz = SysUser.class;
Field[] tableFields=clazz.getDeclaredFields();
Class> superClazz =clazz.getSuperclass();if (superClazz.equals(Object.class)) {
System.out.println("没有父类");
}else{
Field[] tableSuperFields=superClazz.getDeclaredFields();
Field[] superFields= new Field[tableFields.length +tableSuperFields.length];
System.arraycopy(tableFields,0, superFields, 0, tableFields.length);
System.arraycopy(tableSuperFields,0, superFields, tableFields.length, tableSuperFields.length);
Field[] allFields=getSuperClassFields(superFields, superClazz);for (int i = 0; i < allFields.length; i++) {
PropertyDescriptor pd= newPropertyDescriptor(allFields[i].getName(), clazz);
Method getMethod= pd.getReadMethod();//获得get方法
Object fieldValue =ReflectionUtils.invokeMethod(getMethod, obj);if(fieldValue == null){continue;
}
System.out.println(allFields[i].getName()+ "的值:" +fieldValue.toString());
}
}
}
//获取父类的所有字段private static Field[] getSuperClassFields(Field[] tableFields, Class>clazz) {
Class> superClazz =clazz.getSuperclass();if (superClazz.equals(Object.class)) {returntableFields;
}
Field[] tableSuperFields=superClazz.getDeclaredFields();
Field[] c= new Field[tableFields.length +tableSuperFields.length];
System.arraycopy(tableFields,0, c, 0, tableFields.length);
System.arraycopy(tableSuperFields,0, c, tableFields.length, tableSuperFields.length);
getSuperClassFields(c, superClazz);returnc;
}