gpt4 book ai didi

Java getUserObject() 返回字符串而不是用户对象

转载 作者:行者123 更新时间:2023-12-02 01:53:50 26 4
gpt4 key购买 nike

创建节点后,我想获取 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(true/false);Parent;Flops
我的范围;真实; ;
a;假;我的范围;AA,AKs,AKo
b;假;我的范围;66,55,44,33,22
c;假;我的范围;JJ,TT,99,88

最佳答案

查看您在评论中链接的代码,树的根节点实际上包含一个 String (“Ranges”)作为它的userObject

鉴于此,您的选择是

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

关于Java getUserObject() 返回字符串而不是用户对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52587834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com