compareTo方法无法编译

时间:2012-03-02 02:34:21

标签: java interface comparable compareto

我的班级标题:

public class GraphEdge implements Comparable<GraphEdge>{

/** Node from which this edge starts*/
protected Point from;
/** Node to which this edge goes*/
protected Point to;
/** Label or cost for this edge*/
protected int cost;

我的compareTo方法:

@Override
public int compareTo(GraphEdge other){
    return this.cost-other.cost;
}

但是Eclipse给了我错误:

GraphEdge类型的compareTo(GraphEdge)方法必须覆盖超类方法

whyyyyy? 我尝试使用

做Comparable
@Override
public int compareTo(Object o){
            GraphEdge other = (GraphEdge) o;
    return this.cost-other.cost;
}

但这也失败了。

1 个答案:

答案 0 :(得分:7)

您的项目很可能已设置为Java 1.5合规性级别 - 尝试将其设置为1.6并且它应该可以正常工作。这里没有Eclipse进行测试,但是我记得当设置为1.5时我无法在接口上使用@Override(但可以在类上)方法覆盖。设置为1.6时,此功能正常。

即。这应该在设置为1.5时失败,但在1.6:

时工作正常
interface A {
   void a();
}

class B implements A {
   @Override
   public void a() {
   }
}

所以试试吧:

enter image description here