java声明类型为T的新对象
我正在尝试创建一个二叉搜索树,该类如下所示:
public class Node<T extends Comparable<T>> {
T data;
Node<T> left
Node<T> right;
int height;
public Node(T data) {
this.data = data;
this.left = null;
this.right = null;
this.height = 0;
}
}
我在其中声明对象的客户端程序如下所示:
public static void main(String[] args) {
Node<T> a = new Node<T>(8);
}
然后,当构造函数Node<T>(T)
引用缺少的类型T时出现错误。我想知道如何将T数据声明为int类型8。如何在不更改节点类的情况下执行此操作
# 1 楼答案
定义泛型后,需要特殊的对象
# 2 楼答案
作为泛型类类型,int基元类型,这就是为什么有一个名为Integer的类,它是int的包装器
# 3 楼答案
必须将
T
替换为类似Integer
的类型:请注意,不能使用
int
,因为只有对象/引用类型才允许作为泛型。无法使用基元类型# 4 楼答案
试试看
进一步阅读:https://docs.oracle.com/javase/tutorial/java/generics/types.html