2011-11-22 6 views
13

次のように私は、メソッドisValid()run()が含まれているコマンドと呼ばれるインターフェースを実装のJavaクラスを書いている:JavaのEclipseの@Overrideエラー

public class DailyEnergy implements Command { 

    @Override 
    public boolean isValid(String command) { 
    return false; 
    } 

    @Override 
    public void run(String command) throws Exception { 
    } 
} 

、ここではCommand.javaファイルです

public interface Command { 

    public boolean isValid(String command); 
    public void run(String command) throws Exception; 
} 

このクラスの中で、私はスーパークラスのメソッドisValid()run()を実装しています、と私は@Override注釈を追加したいのですが、Eclipseはメソッドがoverridしなければならない」というエラーを与えますeスーパークラスのメソッド "を参照してください。

メソッドを取り出してEclipseで自動的にインポートする場合でも、アノテーションを追加するとエラーが発生します。なぜ誰も私が@Override注釈を使用できない理由を明らかにすることができれば、それは非常に感謝しています。

+0

あなたのコードをコピーして質問に貼り付けることはできますか? –

答えて

46

インターフェイス実装上の注釈はJava-6以降でサポートされています。 Java-5を使用していますか?オラクルhas acknowledgedは、Java 6 docsで混乱します。それはcorrected in Java-7でした。下の例を参照してください:

Check compiler setting

+2

いいえ、私は5ではなくjava6を使用しています。 – TNC

+5

プロジェクトのプロジェクトやデフォルトのEclipse JDKがJDK 5に設定されていないことをもう一度確認します。 –

+0

よろしいですか、それは問題でした。私は、Java 5はいつでもインストールされていないので、EclipseはJDK 5にデフォルト設定されていると思います。しかし、とにかく、ありがとう! – TNC

2

あなたはJDK5を使用していますか? 私は気にしているとおり、JDK5のバグです。 @overrideはJDK5のインターフェイスの実装では許可されていません

関連する問題