对我的问题的简短解释,我需要解析一个对象并将其内容放入一个JTree中。我知道该对象可以包含基本类型的字段,但也可以包含其他对象。我怎样才能实现解析,是我应该使用的反射?我现在不知道。
结构看起来像那样:
-object1
|
fieldname1 = 1256
|
fieldname2 = 5623
|
object2
| |
| fieldname1 = 154
| |
| fieldname2 = 190
|
object3
|
任何帮助将不胜感激。提前谢谢!
答案 0 :(得分:2)
是的,您应该使用Reflection API来发现对象字段,并填充JTree节点值。
按如下方式递归处理每个对象:
Class.getDeclaredFields()
)Class.getDeclaredFields()
不返回继承的字段)答案 1 :(得分:0)
以下是如何获取您正在查找的数据并将其转储到控制台的示例。我对JTree没有经验,所以我无法帮助你。
for (Field field : myInstance.getClass().getDeclaredFields()) {
String name = field.getName();
value = field.get(myInstance).toString();
System.out.println(name + ": " + value);
}
将错误捕获结合到此中是个好主意,因为未初始化的字段会导致错误。
for (Field field : myInstance.getClass().getDeclaredFields()) {
try {
String name = field.getName();
String value = "null";
try {
value = field.get(myInstance).toString();
} catch (Exception e) {
// this probably means the field was null
}
System.out.println(name + ": " + value);
} catch (Exception e) {
System.out.println("problem with reflection: " + e);
}
}