我在util.TreeSet
类中发现其中一个构造函数调用了另一个构造函数,使用了一个空泛型的新TreeMap
。
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<>(comparator));
}
new TreeMap<>
的意思是创建一个没有显式泛型类型参数的TreeMap实例,而new TreeMap<?>
则等同于创建一个带有通配符泛型类型参数的TreeMap实例。
new TreeMap<?>()
甚至都不是有效的。 - newacct