Java 什么';s通配符和';T';? public
WritingJava 什么';s通配符和';T';? public,java,Java,Writing绑定类型名T,以便稍后在定义中(包括在参数列表中)引用它 如果你写了 意思是“用Animal的某个特定子类(又称T)的列表做某事” 如果我在第一个方法上调用list.get(),我所知道的关于返回类型的所有信息就是它扩展了Animal。在第二种方法中,如果我有另一个List实例,我知道无论T是什么类型,两个列表都会接受相同的类型 更进一步,如果我说 public <T extends Animal> void takeThing(ArrayList<T> l
绑定类型名T
,以便稍后在定义中(包括在参数列表中)引用它
如果你写了
意思是“用Animal
的某个特定子类(又称T
)的列表做某事”
如果我在第一个方法上调用list.get()
,我所知道的关于返回类型的所有信息就是它扩展了Animal
。在第二种方法中,如果我有另一个List
实例,我知道无论T
是什么类型,两个列表都会接受相同的类型
更进一步,如果我说
public <T extends Animal> void takeThing(ArrayList<T> list)
我不能再说了
Animal animal = list.get(0);
甚至在同一个列表上,因为我们没有对泛型子类型的引用。但是,如果我声明了一个列表其中
,我现在可以说
list.add(animal);
因为我们知道list
需要T
类型的元素-请阅读编辑。
Animal animal = list.get(0);
list.add(animal);
T animal = list.get(0);
list.add(animal);