Java泛型-类型从T到T不匹配

疯狂的

我正在尝试实现基本的二进制搜索树(与问题无关)。这就是我所拥有的:

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结合使用。

user2357112支持Monica

这是两个具有相同名称的类型参数。来自这里的一个:

public class BinarySearchTree<T>

还有一个从这里:

public <T> BSTNode<T> insert
       ^^^

摆脱箭头所指的那个。您已使方法采用其自己的T参数,该参数不同于类的参数T

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章