考虑下面的Java代码:为什么无法将对象添加到列表<?超级号码>?
List<? super Number> list = new ArrayList<>();
Number n = new Integer(1);
Object o = new Object();
list.add(n); // works, apparently Number super Number is alright
list.add(o); // compiler error!
但是,为什么是这样呢?因为在内部,类型擦除使列表成为一个列表,其中包含对象,为什么不允许将对象(它是所有类的超类,因此应该满足下界的通配符)添加到列表中?
这个确切的例子是,即使在这个问题...... – Woot4Moo 2013-02-22 17:05:29