Java/parse对象并将其字段加载到JTree中

Java/parse对象并将其字段加载到JTree中,java,parsing,reflection,jtree,Java,Parsing,Reflection,Jtree,简要说明我的问题,我需要解析一个对象并将其内容放入JTree。我知道对象可以有基本类型的字段,但也可以有其他对象。我如何实现解析,反射是我应该使用的吗?我现在不知道 结构将类似于: -object1 | fieldname1 = 1256 | fieldname2 = 5623 | object2 | | | fieldname1 = 154 | | | fieldname2 = 190 |

简要说明我的问题,我需要解析一个对象并将其内容放入JTree。我知道对象可以有基本类型的字段,但也可以有其他对象。我如何实现解析,反射是我应该使用的吗?我现在不知道

结构将类似于:

-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);
          }
      }