我正在尝试实现基本的二进制搜索树(与问题无关)。这就是我所拥有的:
public class BSTNode<T> {
public T data;
public BSTNode<T> left;
public BSTNode<T> right;
}
public class BinarySearchTree<T> {
private BSTNode<T> root;
public <T> BSTNode<T> insert(T item){
BSTNode<T> newNode = new BSTNode<T>();
newNode.data = item;
if(root == null){
root = newNode;
}
return newNode;
}
}
插入方法不完整。但是,我在“ root = newNode;”上遇到以下编译错误:if块中的行:
Type mismatch: cannot convert from BSTNode<T> to BSTNode<T>
我无法解决这个问题。它们是相同的泛型类型。为什么编译器会抱怨?
我将JDK 8与Eclipse Mars结合使用。
这是两个具有相同名称的类型参数。来自这里的一个:
public class BinarySearchTree<T>
还有一个从这里:
public <T> BSTNode<T> insert
^^^
摆脱箭头所指的那个。您已使方法采用其自己的T
参数,该参数不同于类的参数T
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句