2012-03-02 7 views
1

私のクラスのヘッダーをコンパイルしません。 GraphEdgeはスーパークラスメソッドをオーバーライドする必要がありますcompareToメソッドは

whyyyyy? 私はちょうど

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

で、同等のやってみましたが、これも失敗しました。

+0

あなたはあなたがエラーを投稿することができます受信? –

+0

これは私が受け取っているエラーの正確なテキストです。 – Colleen

+0

2回目の試行も失敗したものの、そのエラーメッセージは送信しません。同じエラーが表示されますか? –

答えて

7

あなたのプロジェクトはJava 1.5準拠レベルに設定されている可能性があります。1.6に設定してみるとうまくいくはずです。ここでEclipseをテストしないでください。ただし、1.5に設定すると、インタフェース上で@Overrideを使用することはできませんでした(クラス上でも可能です)メソッドのオーバーライドです。これは、1.6に設定すると正常に機能しました。

I.e. 1.5に設定すると、これは失敗するはずですが、仕事のOK時に1.6に:

interface A { 
    void a(); 
} 

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

だから、それを試してみてください。

enter image description here

+0

他の質問から重複した回答を避ける必要があります。:) OPの質問に対するコメントを確認してください。 – Jack

+0

@Jack面白いのは、1.5のインターフェースメソッドではサポートされていないとの回答です私は 'javac -source 1.5 -target 1.5'で自分自身をテストしましたが、javac v1.6.0_26-b03でOK-trueをコンパイルしましたが、問題はもう少しあいまいです。そして注意する必要があります - 私は自分自身を実行しましたが、Eclipseの問題かJavaの問題かは決して分かりませんでした。 –

+0

新しいEclipseのインストール時に、私の作業コードが1.5準拠のレベルで少し上がっています。それをicyrockあたり1.6に変更した後、プロジェクトのFacetバージョンも1.6に変更する必要がありました。http://stackoverflow.com/questions/2239959/faceted-project-prblem-java-version-mismatch-error-message 。 –

関連する問題