Java DefaultMutableTreeNode中的isRoot()

Java DefaultMutableTreeNode中的isRoot(),java,tree,root,jtree,defaultmutabletreenode,Java,Tree,Root,Jtree,Defaultmutabletreenode,为什么DefaultMutableTreeNode中有一个isRoot()函数?我这样问是因为我有一个扩展DefaultMutableTreeNode的类。我希望能够在多个不同的JTree对象中使用该类的单个实例。然而,isRoot()似乎是我应该问树对象本身的一个问题。任何人都能提供关于为什么这个函数存在于节点级而不是树级的见解吗 树对象不能是树的根;JTree对象不是节点 DefaultMutableTreeNode旨在促进树的递归遍历。由于处理树的递归方法一次只能访问一个节点(及其后续节点

为什么DefaultMutableTreeNode中有一个isRoot()函数?我这样问是因为我有一个扩展DefaultMutableTreeNode的类。我希望能够在多个不同的JTree对象中使用该类的单个实例。然而,isRoot()似乎是我应该问树对象本身的一个问题。任何人都能提供关于为什么这个函数存在于节点级而不是树级的见解吗

树对象不能是树的根;JTree对象不是节点


DefaultMutableTreeNode旨在促进树的递归遍历。由于处理树的递归方法一次只能访问一个节点(及其后续节点),该方法区分树的根的唯一方法是让节点单独跟踪它们是否为树的根。

它必须存在于节点级别,因为它显式地检查该节点是否为根。而不是依赖外部方法,在外部方法中,你必须传递一个节点作为参数来决定它是否是根。好吧,为了进一步我的问题,当节点不是一棵树中的根时会发生什么,但是根在不同的树中吗?那么,通过在两个独立的树中共享一个节点,您成功地犯了一个编程错误。您想要共享的是节点中的数据,而不是节点结构本身。让每个树处理自己的节点结构如果同一节点位于两个不同的树中,并且处于不同的级别,则其
getParent()
方法可能无法返回正确的值。