我正在尝试这个 -
List<? extends Integer> l = new ArrayList<Integer>();
l.add(10);
编译器报错 -
The method add(int, capture#1-of ? extends Integer) in the type List<capture#1-of ? extends Integer> is not applicable for the arguments (int)
为什么我不能将整数添加到整数列表中?如果我无法添加整数,为什么编译器不会在第一行就报错呢?
List<? extends Integer>
不等同于List<Integer>
。请查看 PECS 了解更多信息。 - Codebenderl.add(new Integer(10))
应该可以工作,对吧?可能是自动装箱被关闭了。 - KenneyArrayList<Integer>
是List<? extends Integer>
的有效对象(子类型)。所以你的第一行是有效的... - Codebendernull
。 - Paul Boddington