我正在尝试理解 java 通用通配符。我遇到了一个基本程序。在我看来,唯一可以添加到列表 s 中的是“null”。例如,您不能添加
s.add(new Integer (4));
OR
s.add(new Char(a));
在阅读大量材料并混淆我的思想之前,我试图了解 Java 设计人员在泛型中引入通配符的目的。从我的角度来看,我看不到任何有用的特性来自泛型通配符。它可能出现所以由于我缺乏经验并且因为我是java新手。如果人们可以分享他们对此事的想法会很好。
import java.util.LinkedList;
import java.util.Iterator;
public class WildCardExampleOne {
public static void main(String[] args)
{
LinkedList<?> s = new LinkedList<Integer>();
s.add(null);
Iterator<?> x = s.iterator();
Object o = x.next();
System.out.println(o);
/* note that LinkedList<?> is NOT the same type as LinkedList<Object>
* here are some statements that wouldn't compile:
*/
// s.add(new Integer(3));
// Iterator<Object> x = s.iterator();
}
}