是否可以将String变量转换为DefaultMutableTreeNode对象? 请解释。 上下文:
String s = new String(outputTagName);
Object s2 = (Object) s;
DefaultMutableTreeNode selectedNode2 =(DefaultMutableTreeNode) s2;
DefaultMutableTreeNode parent2 =(DefaultMutableTreeNode) parent;
model.insertNodeInto(selectedNode2, parent2, parent2.getChildCount());
这是代码,我写道。这在以BunthFirstSearch方式遍历树的枚举中使用。 并且2nf行给了我这个错误:
java.lang.ClassCastException: java.lang.String cannot be cast to javax.swing.tree.DefaultMutableTreeNode at ....
答案 0 :(得分:1)
这取决于完全关于您希望使用该节点的树的语义。
例如,您可以创建一个包含字符串的节点,其格式如下:
String s = ...; // your string
new DefaultMutableTreeNode(s);
这对您是否有用取决于您使用树的方式。
基本上,更多上下文。否则,这个简单的“是”答案是你最好的答案。 :-P
答案 1 :(得分:1)
如果我错了,请纠正我,但似乎您想要将所选节点的显示文本更改为某些新的给定文本。如果是这种情况,我认为这可能会有所帮助。
DefaultMutableTreeNode node=(DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
node.setUserObject("New Node Text");
答案 2 :(得分:0)
您不能将String对象转换为String或Object以外的任何类型,或者String实现的接口之一(Serializable,CharSequence,Comparable)。要将对象强制转换为某种类型,对象必须为此类型的。 String对象的类型为String,而不是DefaultMutableTreeNode类型。您甚至无法使DefaultMutableTreeNode成为String的子类(在这种情况下可以进行转换),因为String类是最终的。
答案 3 :(得分:0)
Link that you have provide in your other question
您可以看到您可以执行新的DefaultMutableTreeNode(“Any String”);
要更正代码示例,请执行以下操作:
String s = new String(outputTagName);
DefaultMutableTreeNode selectedNode2 = new DefaultMutableTreeNode(s2);