Я попытался воспроизвести код ниже на eclipse. Я получаю сообщение о том, что мне нужно реализовать все унаследованные методы (поскольку Comparator - это интерфейс).
Тип
new Comparator(){}
должен реализовать унаследованный абстрактный методComparator.reversed()
.
Есть много таких методов, и единственное, что я хочу переписать, - это сравнение. Нужно ли мне выполнять все другие методы или есть способ указать, что мне не нужно их реализовывать? Я понимаю, что мне придется это делать из-за контрактного характера интерфейса, но что, если мне просто нужно изменить один метод?
static Map sortByValue(Map map) {
List list = new LinkedList(map.entrySet());
Collections.sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
return ((Comparable) ((Map.Entry) (o1)).getValue())
.compareTo(((Map.Entry) (o2)).getValue());
}
});
Map result = new LinkedHashMap();
for (Iterator it = list.iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry)it.next();
result.put(entry.getKey(), entry.getValue());
}
return result;
}
ИЗМЕНИТЬ Решено путем изменения уровня соответствия java8 в eclipse luna. Спасибо!