Generic 扩展背后的概念是什么,为什么不允许修改列表;为什么当我将字符串添加到 list 时会引发编译时错误,因为 String 扩展了 Object 并且应该是合法的。
如果这给出了编译错误,那么创建的那个列表有什么用。
List<? extends Object> ls=new ArrayList<String>();
ls.add("asd"); // compilation error
它在 super 的情况下编译。
List<? super Integer> ls1=new ArrayList<Object>();
ls1.add(1);
我已阅读 Kathy Sierra 和 Javadoc,但无法理解这意味着什么。请给我一个详细的解释和例子来理解这一点。