你可以做這樣的事情:
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());
}
}
這將只打印了公共領域,打印私有字段使用類。遞歸的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;
}
}
你看過*任何*反思教程或看過任何文檔? – 2013-02-27 12:53:36
是的,我已經看到了這http://stackoverflow.com/questions/744226/java-reflection-how-to-get-the-name-of-a-variable – Goofy 2013-02-27 12:54:01
你可以參考我的POJO類 – Goofy 2013-02-27 12:55:16