我明白收集的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