为什么不能将Object类型的对象添加到List <?>中? - java

据我了解,List<?>是一些特定但未知类型的列表。因此,无论此List的参数类型是什么,都应该扩展Object,因为在Java中,不能有任何不扩展Object的类型。那么为什么下面的代码没有被编译呢?它如何违反listObj的不变式

    List<?> listObj = returnSomeList();
    listObj.add(new Object()); //Why does this not work ?

参考方案

List<?> listObj可以指向可以存储不同类型对象的任何类型的List。

您如何看待,例如,让它添加任何对象是否安全?

List<?> listObj = new ArrayList<String>();
listObj.add(new Object());

实例化类型<?>的泛型类 - java

我正在为SCJP / OCPJP学习,并且遇到了一个对我来说很奇怪的示例问题。该示例代码实例化了两个通用集合:List<?> list = new ArrayList<?>(); List<? extends Object> list2 = new ArrayList<? extends Object>(); …

如何使用Java流在第一个和最后一个嵌套对象之间创建map <k,v>? - java

假设我有以下课程:class A { int id; List<B> b; } class B { int id; } 我想在A.id到B.id的列表之间创建一个映射(Map<Integer, List<Integer>>,其中key = A.id,而List<Integer>对应于每个A的B.id字段的列表)…

休眠映射<键,设置<值>> - java

我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …

无法从ArrayList <String>转换为List <Comparable> - java

当我写下面的代码时,编译器说 无法从ArrayList<String>转换为List<Comparable>private List<Comparable> get(){ return new ArrayList<String>(); } 但是当我用通配符编写返回类型时,代码会编译。private List&l…

合并List <T>和List <Optional <T >> - java

鉴于: List<Integer> integers = new ArrayList<>(Arrays.asList( 10, 12 )); List<Optional<Integer>> optionalIntegers = Arrays.asList( Optional.of(5), Optional.em…