我明白收集的get and put principle:如果一个方法需要一个集合,它将写入一个类型T to,参数必须是Collection<? super T>
,而如果它会读取键入T,参数必须是Collection<? extends T>
。Java的泛型:Collections.max()签名和比较器
但可能有人请解释Collections.max()
签名:
public static <T> T max(Collection<? extends T> coll,
Comparator<? super T> comp)
特别是它为什么Comparator<? super T>
,而不是Comparator<? extends T>
?
我想也许我不完全理解get/put原则然后...? – 2010-02-11 23:09:08
我推荐阅读那些讨论“PECS”的Effective Java章节。 想想这样:如果我要求你对一个双精选列表进行排序,并给你一个Comparator来做这件事,你会怎么看? –
2010-02-12 17:36:46
你能扩大你的答案吗?尽管对于高级java程序员来说答案可能很清楚,但它需要重新阅读这个问题才能完全理解你在说什么。我知道这可能是您以前的答案之一,但它出现在低质量帖子评论部分。 - [来自评论](https://stackoverflow.com/review/low-quality-posts/11445740) – Ferrybig 2016-02-29 08:53:25