метод CompareTo не будет компилироваться - PullRequest
1 голос
/ 02 марта 2012

Мой заголовок класса:

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 выдает ошибку:

Метод compareTo (GraphEdge) типаGraphEdge должен переопределить метод суперкласса

Whyyyyy?Я пытался просто сделать Comparable с

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

, но это также не удалось.

1 Ответ

7 голосов
/ 02 марта 2012

Скорее всего, ваш проект настроен на уровень соответствия 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() {
   }
}

Так попробуйте:1008 *http://help.eclipse.org/helios/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2FgettingStarted%2Fqs-with-j2se50.htm

enter image description here

...