Java/parse对象并将其字段加载到JTree中
简要说明我的问题,我需要解析一个对象并将其内容放入JTree。我知道对象可以有基本类型的字段,但也可以有其他对象。我如何实现解析,反射是我应该使用的吗?我现在不知道 结构将类似于:Java/parse对象并将其字段加载到JTree中,java,parsing,reflection,jtree,Java,Parsing,Reflection,Jtree,简要说明我的问题,我需要解析一个对象并将其内容放入JTree。我知道对象可以有基本类型的字段,但也可以有其他对象。我如何实现解析,反射是我应该使用的吗?我现在不知道 结构将类似于: -object1 | fieldname1 = 1256 | fieldname2 = 5623 | object2 | | | fieldname1 = 154 | | | fieldname2 = 190 |
-object1
|
fieldname1 = 1256
|
fieldname2 = 5623
|
object2
| |
| fieldname1 = 154
| |
| fieldname2 = 190
|
object3
|
任何帮助都将不胜感激。提前谢谢 是的,您应该使用反射API来发现对象字段,并填充JTree节点值 递归处理每个对象,如下所示:
- 将节点添加到树中
- 处理对象类中声明的字段中的对象(使用
)class.getDeclaredFields()
- 从对象的每个超类中的字段处理对象(
不返回继承的字段)Class.getDeclaredFields()
- 以下是一个示例,说明如何获取正在查找的数据并将其转储到控制台。我没有JTree的经验,所以在这方面我帮不了你
基本技术
错误捕捉
最好将错误捕获合并到其中,因为未初始化的字段将导致错误
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);
}
}
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);
}
}