为什么List.sort()使用Comparator<? super E>
而不是Comparator<? extends E>
或仅使用Comparator<E>
?
如果List<E>
包含类型E或其子类型的元素,则比较器在比较方法调用中应该只期望类型E或其子类型。
例如:对于类型为Integer的列表,为什么在Comaparator<Object>
仅具有Integer或其子类型的情况下,我需要Comparator<Number>
或List<Integer>
?
这不是重复的问题,请阅读评论部分的讨论。