Java 无法将T类型的对象添加到列表<;T>;在爪哇
我一直在学习Java中的泛型。虽然我理解关于类型推断、参数化类和方法的概念,但在实验中我遇到了一个奇怪的场景 我已经实现了一个Box类,它可以用来保存T类型的项。我使用List作为这个抽象的内部数据结构。以下是我的代码:Java 无法将T类型的对象添加到列表<;T>;在爪哇,java,generics,Java,Generics,我一直在学习Java中的泛型。虽然我理解关于类型推断、参数化类和方法的概念,但在实验中我遇到了一个奇怪的场景 我已经实现了一个Box类,它可以用来保存T类型的项。我使用List作为这个抽象的内部数据结构。以下是我的代码: public class Box<T> { private List<T> items; public Box(){ items = new ArrayList<>(); } public
public class Box<T> {
private List<T> items;
public Box(){
items = new ArrayList<>();
}
public <T> void addItemToBox(T t){
items.add(t);
}
}
公共类框{
私人清单项目;
公用信箱(){
items=newarraylist();
}
公共无效addItemToBox(T){
增加(t)项;
}
}
我在项处遇到编译时错误。add(t)表示列表中的add(t)不能应用于(t)。我无法找出这个错误的原因。另外,我不明白为什么我不能将类型为t的项添加到由t参数化的列表中。您已经在方法
addItemToBox
上对泛型类型变量
进行了局部重新声明,该方法将类框上的变量隐藏起来
方法上的
与列表项上的不同代码>
您当前的代码100%等同于:
public class Box<T> {
private List<T> items;
public Box(){
items = new ArrayList<>();
}
public <T2> void addItemToBox(T2 t){
items.add(t);
}
}
谢谢欧文!这让我很清楚。我混淆了两个概念。
public void addItemToBox(T t)