TreeComparable
是Comparable
界面。
错误:
java.lang.String cannot be cast to TreeComparable
这是给我错误的行
if (((TreeComparable) r.getInfo()).compareTo((TreeComparable) p.getInfo()) < 0 )
以下是该行的方法:
public void insertBST(Object o) {
ObjectTreeNode p, q;
ObjectTreeNode r = new ObjectTreeNode(o);
if (root == null)
root = r;
else {
p = root;
q = root;
while (q != null) {
p = q;
if (((TreeComparable)(r.getInfo())).compareTo((TreeComparable)(p.getInfo())) < 0 )
q = p.getLeft();
else
q = p.getRight();
}
if (((TreeComparable)(r.getInfo())).compareTo((TreeComparable)(p.getInfo())) < 0)
setLeftChild(p, r);
else
setRightChild(p, r);
}
}
注意:BST代表二叉搜索树。
getInfo
类的ObjectTreeNode
方法:
private Object info;
public Object getInfo() {
return info;
}
最后,我不知道这些是否会有所帮助,但我的TreeComparable
compareTo
声明:
int compareTo(Object o);
和compareTo
类中的(Word)
方法:
String word;
public int compareTo(Object o) {
Word w = (Word) o;
return this.word.compareTo(w.getWord());
}
非常感谢帮助。
答案 0 :(得分:1)
这是因为String
没有实现接口TreeComparable
。 Comparable
实现了一个接口String
。字符串可以升级到此接口。