[英]Comparator<String> must override super class method
我正在制作一個TreeMap<String, String>
並希望以降序排序。 我創建了以下比較器:
Comparator<String> descender = new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
};
我像這樣構造TreeMap:
myMap = new TreeMap<String, String>(descender);
但是,我收到以下錯誤:
The method compare(String, String) of type new Comparator<String>(){} must override a superclass method
我從未完全弄清楚仿制葯,我做錯了什么?
您的Eclipse項目顯然已設置為Java 1.5。 然后,接口方法確實不支持@Override
注釋。 刪除該批注或將項目的合規性級別修復為Java 1.6。
如果您只想反轉自然(升序)排序,則無需編寫自定義Comparator
。
要獲得降序排序,請使用:
myMap = new TreeMap<String, String>(java.util.Collections.reverseOrder());
啊,我發現了問題。 在實例化Comparable的新匿名實例時,我沒有覆蓋接口方法......我正在實現它們。 @Override指令是問題所在。 compare()方法沒有覆蓋現有方法,它正在實現接口的一部分。 我從其他地方復制了該代碼,它不應該有@Override。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.