问题描述
- 为什么无法打印POJO里面的属性?
-
我写了一个工具类,当我输入一个对象,直接打印对象里面的属性public class JavaUtil { public static void toString(Object object){ Class clazz = object.getClass();//获得类对象 StringBuilder sb = new StringBuilder(); sb.append("成员变量:n"); Field[] fields = clazz.getFields(); for (Field field:fields){ sb.append(field.toGenericString()+"n"); } System.out.println(sb.toString()); } }
public class POJO { private Integer id; private String name; public POJO() { } public POJO(Integer id, String name) { this.setId(id); this.setName(name); } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
public class Test { public static void main(String[] args) { POJO pojo = new POJO(); pojo.setId(1); pojo.setName("任冠宇"); JavaUtil.toString(pojo); } }
解决方案
getFields()方法只能获得public的属性
如果非得获取只能用getDeclaredMethods()方法,然后自己手动裁剪字符串了
时间: 2024-12-24 21:36:19