Eclipseの@Override
アノテーションに迷惑な問題があります。作業中のプロジェクトを新しいPCにインポートすると、Eclipseが@Override
アノテーションの一部を間違っているとマークすることがよくあります。アノテーションを削除するとすべてが問題なく、Eclipseはメソッドが親メソッドをオーバーライドしていることを示していますが、Overrideアノテーションを追加するとエラーが再び発生します。私は現在Androidプロジェクトに取り組んでいるので、Androidでは問題であり、Eclipseでは問題ではないかもしれません。
Java 1.5とJava 1.6の間で切り替えているためです。1.5では、@ Overrideを使用してインターフェース実装をマークできませんでしたが、 1.6。
簡単なGoogle検索で、2つのバージョン間のこの注釈の違いについての良い説明が見つかりました: http://www.techienuggets.com/CommentDetail?tx=38155
@Overrideのセマンティクスは、JDK 1.5とJDK 1.6では異なります。 JDK 1.5では、インターフェースで宣言されたメソッドの実装に対して@Overrideアノテーションは許可されませんが、JDK 1.6では許可されます。詳細については、以下を参照してください。
http://bugs.Sun.com/bugdatabase/view_bug.do?bug_id=500826http://bugs.Sun.com/bugdatabase/view_bug.do?bug_id=6399361http://blogs.Oracle.com/ahe/?entry=override
オーバーライドアノテーションの説明がJDK APIドキュメントで更新されなかったのは事実です。これはバグとして報告されています:
http://bugs.Sun.com/bugdatabase/view_bug.do?bug_id=6501053bugdatabase/view_bug.do?bug_id=650105
ちょうど行く
window -> prefrences -> Java -> compiler
表記法が1.6から始まるため、1.6に設定します。したがって、コンパイルレベルが1.6未満になると、エラーが発生します。
Java=コンパイラ設定が構成されている場所がいくつかあります。
1つの方法は、Window->Preferences->Java->Compiler->Compiler Compliance Level -> set 1.6 or above
を使用することです。別の方法は、Project->Properties->Java Compiler->JDK Compliance -> Select 1.6 or above.
を右クリックすることです
また、"プロジェクト固有の設定を有効にする"の選択を解除することもできます。これにより、将来のJDKコンパイラー準拠エラーが解消されます。別のプロジェクトで必要でない限り、JDKバージョンの複数のインスタンスを削除します。
使用済みのJava SDKが最新であり、Eclipseが正しいSDKバージョンを使用している(複数インストールされている場合)ことを確認し、Androidプロジェクトを処理する適切なSDKバージョンで...