我的班级头:
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)必须覆盖超类方法
为什么?
我试着只是做可比
@Override
public int compareTo(Object o){
GraphEdge other = (GraphEdge) o;
return this.cost-other.cost;
}
但这也失败了。
最佳答案
您的项目很可能已设置为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() {
}
}
所以尝试一下:
http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-with-j2se50.htm