簡體   English   中英

java 8中的比較器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM