gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 01:50:40 28 4
gpt4 key购买 nike

我试图实现一个基本的二叉搜索树(与问题无关)。这就是我所拥有的:

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 block 中的行:

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 不同。

关于Java 泛型 - 从 T 到 T 的类型不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243673/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com