据我了解,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…