考慮下面的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