例如:
举个例子:
public String add(Set<?> t){
...;
}
public <T> String add(Set<T> t){
...;
}
第一种使用通配符泛型;第二种是泛型方法的正常形式。 有什么区别呢?
在什么情况下需要使用通配符泛型,而不是泛型的正常形式?
List<List<?>>
是一个列表,可以同时容纳其中不同类型的列表(您可以将List<A>
和List<B>
添加到其中,但不能添加非List
类型的元素)。除非使用原始类型,否则您无法表达这种情况。对于任何E
,List<List<E>>
只能容纳一种类型的列表,即List<E>
。 - newacct