Java 具有对象通配符的泛型arraylist

Java 具有对象通配符的泛型arraylist,java,generics,Java,Generics,我创建了一个如下的列表 ArrayList<? extends Object> arr = new ArrayList<Object>(); 他们都给出了错误。这里有什么问题? 但是当我把它改成 ArrayList<? super Object> arr = new ArrayList<Object>(); ArrayList当集合使用带上界的通配符作为泛型类型时,除了null之外,不能向集合中添加任何内容。原因是您可能只是在收藏中添加了错误的

我创建了一个如下的列表

ArrayList<? extends Object> arr = new ArrayList<Object>();
他们都给出了错误。这里有什么问题? 但是当我把它改成

ArrayList<? super Object> arr = new ArrayList<Object>();

ArrayList当集合使用带上界的通配符作为泛型类型时,除了null之外,不能向集合中添加任何内容。原因是您可能只是在收藏中添加了错误的时间。有关详细说明

当集合使用带上限的通配符作为泛型类型时,您不能向集合中添加任何内容,但null除外。原因是您可能只是在收藏中添加了错误的时间。要了解更多解释,请参见声明
ArrayList声明
ArrayList,那么它为什么工作?ArrayList那么它为什么工作?ArrayList
ArrayList<? super Object> arr = new ArrayList<Object>();
arr.set (0, arr.get (0));