创建对象及其声明的字段的JTree的,我需要动态的JTree其中节点将对象和在节点展开,我会用反射来获得声明的字段。所有非原始字段将再次成为节点,依此类推,递归。与反思
因此,这里是我的树节点类的简短说明:
public TreeNode(Object o){
this.name = o.getClass().getSimpleName();
this.treeobjectclass = o.getClass();
this.isbranch = isBranchObject();
this.properties = initializePropertiesMap();
this.children = //here i will get children with getDeclared fields and
//instantiate new TreeNode for nonprimitive ones
}
问题:
当通过孩子做递归实例化,如何避免一个问题,当我碰到一个孩子构造函数要求参数的类?
如果我也许路过类参数,而不是对象为构造?
- 如果我这样做,如果以后我需要得到这个类的对象,我尝试用class.getConstructor - 再次,我没有参数。
如何摆脱这种诅咒的循环?我是全新的反思。任何类似工作的例子?
谢谢
背后有什么使用反射这样做的动机是什么?也许_architechture_可以自然地为你解决这些问题。 – 2011-02-05 20:28:32
@JohanSjöberg:使用反射的原因是jtree会有复选框,当单击某个节点/叶子上的复选框时,字段名称将用于动态查询生成。我很抱歉你能解释“建筑”吗?我不熟悉它。 Thanx – Julia 2011-02-05 20:32:38