創建節點后,我想獲取一個 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.classpublic 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;Flopsmy range;true; ;a;false;我的范圍;AA,AKs,AKob;false;我的范圍;66,55,44,33,22c;false;我的范圍;JJ,TT,99,88
1 回答

LEATH
TA貢獻1936條經驗 獲得超7個贊
查看您在注釋中鏈接的代碼,樹的根節點實際上確實包含String
("<html><b>Ranges</b></html>") 作為其userObject
.
鑒于此,您的選擇是
用周圍的節點替換根節點
MyNodeUserObject
;這可能需要對該類進行一些更改才能正確處理根節點在
visitAllNodes
方法中添加一個特殊情況(instanceof MyNodeUserObject
例如,檢查)確保
visitAllNodes
沒有用根節點調用
添加回答
舉報
0/150
提交
取消