上代码:

public static void main(String[] args) throws IntrospectionException {
SysUser obj = new SysUser();
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 = new PropertyDescriptor(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)) {
return tableFields;
}
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);
return c;
}

输出结果:

最新文章

  1. 【python之路4】循环语句之while
  2. [javascript] 判断 iframe 是否加载完成
  3. PHP----Ajax异步请求
  4. 利用phpexcel把excel导入数据库和数据库导出excel实现
  5. 初学MFC
  6. Hibernate+Struts2完成修改数据功能
  7. hibernate sql查询
  8. android Graphics(四):canvas变换与操作
  9. Linux 挂载NTFS文件系统
  10. vue学习笔记 实例(二)
  11. 输入法无法切换 win10
  12. Django学习笔记(二)视图函数
  13. Windows10 小闹钟
  14. nice team小组出山啦!(第二次会议)
  15. 在ASP.NET非MVC环境中(WebForm中)构造MVC的URL参数,以及如何根据URL解析出匹配到MVC路由的Controller和Action
  16. 【Unity Shader】五、Shader纹理映射,及纹理的缩放和偏移
  17. 把a文件删除b文件中的相同的行
  18. openresty websocket 使用
  19. Python:列表中,增加元素、删除元素、切片、其它
  20. aerospike(2)-java client

热门文章

  1. MFC小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应
  2. iOS 基础类解析 - NSString、NSMutableString
  3. ListView实现简单列表
  4. java的征途
  5. 洛谷P3809 后缀数组模板
  6. PCB 无需解压,直接读取Genesis TGZ指定文件 实现方法
  7. 8.19noip模拟题
  8. selenium3 + python - css定位
  9. CAS配置(2)之主配置
  10. HTML基础练习