我在util.TreeSet
类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap
调用另一个构造函数。
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<>(comparator));
}
new TreeMap<>
是什么意思?相当于new TreeMap<?>
吗?
参考方案
这是Java 7语法。菱形(<>
)是让Java编译器用在本地上下文中有意义的任何东西填充通用参数(在本例中为? super E
)的简便方法。
我正在为SCJP / OCPJP学习,并且遇到了一个对我来说很奇怪的示例问题。该示例代码实例化了两个通用集合:List<?> list = new ArrayList<?>(); List<? extends Object> list2 = new ArrayList<? extends Object>(); …
为什么不能将Object类型的对象添加到List <?>中? - java据我了解,List<?>是一些特定但未知类型的列表。因此,无论此List的参数类型是什么,都应该扩展Object,因为在Java中,不能有任何不扩展Object的类型。那么为什么下面的代码没有被编译呢?它如何违反listObj的不变式 List<?> listObj = returnSomeList(); listObj.add(ne…
如何使用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中的<<或>>>是什么意思? - javaThis question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…
休眠映射<键,设置<值>> - java我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …