我有 2 个带有 getter 和 setter 的 POJO 类,现在我试图获取该类的所有类实例变量。
我知道我们可以使用反射怎么办呢?
这是我的 POJO 类,它将扩展我的反射类。
class Details{
private int age;
private String name;
}
反射类是这样的:
class Reflection{
public String toString(){
return all the fields of that class
}
你可以这样做:
public void printFields(Object obj) throws Exception {
Class<?> objClass = obj.getClass();
Field[] fields = objClass.getFields();
for(Field field : fields) {
String name = field.getName();
Object value = field.get(obj);
System.out.println(name + ": " + value.toString());
}
}
这只会打印公共字段,要打印私有字段,请递归使用 class.getDeclaredFields 。
或者如果你想延长课程:
public String toString() {
try {
StringBuffer sb = new StringBuffer();
Class<?> objClass = this.getClass();
Field[] fields = objClass.getFields();
for(Field field : fields) {
String name = field.getName();
Object value = field.get(this);
sb.append(name + ": " + value.toString() + "\n");
}
return sb.toString();
} catch(Exception e) {
e.printStackTrace();
return null;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)