有什么区别
public List<?> myList;
和
public List<String> myList;
我知道后者会存储 List
myList 对象(字符串),但不确定第一个对象的作用。我的猜测是它将采用任何 type
的对象.但这安全吗?t
最佳答案
是的,它不安全,这就是为什么在使用它作为参数时不能添加它。您只能从中读取。
List<?>
表示键入未知类型的列表。这可能是 List<A>, a List<B>, a List<String>
等等
由于不知道List的类型是什么,所以只能从集合中读取,并且只能将读取到的对象视为Object实例。
public void processElements(List<?> elements){
for(Object o : elements){
System.out.println(o);
}
}
在此方法中,您无法在“元素”中添加内容。只读取内容,因为你无法知道元素是什么类型。
关于java - java java.util.List接口(interface)中不同参数类型的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371087/