[英]Comparator in java 8
最近我將Java更新到了版本8,但是我遇到了Comparator的問題(在7版本中,一切都運行得很好):
lastplace = Collections.max(place,
new Comparator<Place>() {
public int compare(Place o1,
Place o2) {
return (o1.getDateFrom()
.compareTo(o2.getDateFrom()));
}
});
現在Comparator需要繼承其他方法(thenComparingInt,thenComparingLong等),但我不需要它們
如何用幾行代碼解決這個問題?
Comparator類中的新方法是默認的,你不需要實現,因為它提供默認實現。我認為問題出在你的IDE上,因為編譯器合規性級別設置為1.7。只需將編譯器級別更改為1.8,如果沒有升級你騎。
根據javadocs http://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html,這些方法被標記為default
,因此您不必提供實現。 有關默認接口方法的更多信息:http: //zeroturnaround.com/rebellabs/java-8-explained-default-methods/ 。
您可以使用lamda表達式來簡單地實現Comparator接口。 這可能會有所幫助: http : //www.dreamsyssoft.com/java-8-lambda-tutorial/comparator-tutorial.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.