我理解集合的get 和 put 原则:如果一个方法接受一个它将写入类型 T 的集合,则参数必须是Collection<? super T>
,而如果它将从中读取类型 T ,则参数必须是Collection<? extends T>
。
但是有人可以解释一下Collections.max()
签名吗:
public static <T> T max(Collection<? extends T> coll,
Comparator<? super T> comp)
特别是为什么它Comparator<? super T>
而不是Comparator<? extends T>
?