我尝试在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;
}
Run Code Online (Sandbox Code Playgroud)
编辑 通过在eclipse luna中将合规性级别更改为java8来解决.谢谢!
假设我有一个界面IBird.它有许多方法,如eat(),walk(),run()和fly().
如果基类Ostrich想要实现IBird,应该怎么做呢?因为Ostrich不能飞,但可以做其他所有的东西IBird.