Java getUserObject()返回字符串而不是userobject

Java getUserObject()返回字符串而不是userobject,java,jtree,Java,Jtree,创建一个节点后,我希望得到一个MyNodeUserObject,以便稍后调用getFlops()方法。但是我不能将userobject强制转换为MyNodeUserObject 创建节点: MyNodeUserObject userObject = new MyNodeUserObject("aaa","AA-10"); DefaultMutableTreeNode node = new DefaultMutableTreeNode(userObject); public static v

创建一个节点后,我希望得到一个MyNodeUserObject,以便稍后调用getFlops()方法。但是我不能将userobject强制转换为MyNodeUserObject

创建节点:

MyNodeUserObject userObject = new MyNodeUserObject("aaa","AA-10");

DefaultMutableTreeNode node = new DefaultMutableTreeNode(userObject);


public static void visitAllNodes(DefaultMutableTreeNode node, JTree tree) {
    //java.lang.ClassCastException: java.lang.String cannot be cast to MyNodeUserObject
    MyNodeUserObject nodeInfo = (MyNodeUserObject) node.getUserObject();
MyNodeUserObject.class

public final class MyNodeUserObject{
    private static final long serialVersionUID = 1L;

    private final String flops;
    private final String nodeName;

    public MyNodeUserObject(String nodeName, String flops) {
        this.flops = flops;
        this.nodeName = nodeName;
    }

    public String getFlops() {
        return flops;
    }

    public String getNodeName() {
        return nodeName;
    }

    @Override
    public String toString() {
        return nodeName;
    }
tree.txt的内容:
节点名称;IsFolder(真/假);父母亲翻牌
我的范围;是的
A.虚假的;我的范围;AA,AKs,AKo
B虚假的;我的范围;66,55,44,33,22
C虚假的;我的范围;JJ,TT,99,88


查看您在注释中链接的代码,树的根节点实际上包含一个
字符串(“范围”)作为其
用户对象

鉴于此,你的选择是

  • 将根节点替换为
    MyNodeUserObject
    周围的节点;这可能需要对该类进行一些更改以正确处理根节点
  • visitAllNodes
    方法中添加一个特殊情况(例如,检查MyNodeUserObject的
    实例)
  • 确保根节点未调用
    visitAllNodes

查看您在注释中链接的代码,树的根节点实际上包含一个
字符串(“范围”)作为其
用户对象

鉴于此,你的选择是

  • 将根节点替换为
    MyNodeUserObject
    周围的节点;这可能需要对该类进行一些更改以正确处理根节点
  • visitAllNodes
    方法中添加一个特殊情况(例如,检查MyNodeUserObject的
    实例)
  • 确保根节点未调用
    visitAllNodes

请使用编辑框编辑您的问题。您确定这是同一个
DefaultMutableTreeNode
实例,并且其间没有其他调用
setUserObject
?如何构建树?你能给我们看一下代码吗?这棵树是由一个txt文件构建的。以下是完整的代码:https://paste.ofcode.org/9qnfluqayyry79ksz2u7ij请用。您确定这是同一个
DefaultMutableTreeNode
实例,并且其间没有其他调用
setUserObject
?如何构建树?你能给我们看一下代码吗?这棵树是由一个txt文件构建的。以下是完整代码:https://paste.ofcode.org/9QnFLUQayyRY79ksz2u7ij