web-dev-qa-db-ja.com

Eclipseがインターフェイスメソッドの@Overrideについて文句を言うのはなぜですか?

スーパークラスメソッドではなく、interfaceメソッドをオーバーライドするメソッドで@Overrideを使用する既存のプロジェクトがあります。コードでこれを変更することはできませんが、まだMavenでビルドできるので、Eclpseがアノテーションについて文句を言うのをやめたいです。

このエラーを無効にするにはどうすればよいですか?

注:プロジェクトの要件により、Java 1.5用にコンパイルする必要があります。

132
Stefan Kendall

インターフェイスで宣言されたメソッドを実装するメソッドで@Overrideアノテーションを使用することは、Java 6以降でのみ有効です。 Java 5のエラーです。

IDEプロジェクトがJava 6 JREを使用するように設定されていること、および「ソースの互換性」が1.6以上に設定されていることを確認してください。

  1. [ウィンドウ]> [設定]ダイアログを開きます
  2. Java> Compilerを参照します。
  3. そこで、「コンパイラー準拠レベル」を1.6に設定します。

Eclipseは特定のプロジェクトのこれらのグローバル設定を上書きできるので、それらも確認してください。


更新:

Java 5の下のエラーはEclipseだけのものではありません。 javacをコマンドラインから直接使用すると、同じエラーが発生します。 有効なJava 5ソースコードではありません。

ただし、Java 6ソースコードからJava 5バージョンクラスファイルを生成するJDK 6のjavac-target 1.5オプションを指定できます。

266
erickson

次のようにします。

プロジェクト->プロパティ-> Javaコンパイラ->

  • プロジェクト固有の設定を有効にする-「はい」
  • コンパイラー準拠-1.6
  • 生成されたクラスファイルとソースの互換性-1.5
37
mitko

プロジェクトにファセットがあるかどうかも確認してください。 Javaバージョンはそこでオーバーライドされる場合があります。

11
gdoumenc

プロジェクト固有の設定が有効になっている場合があります。プロジェクトProject > Properties > Java CompileruncheckEnable project specific settingsを選択するか、Jdk 1.6以上を変更して、対応するJREを忘れないようにします。
機能しない場合は、プロジェクトをEclipseから削除し、.settings folders.project.classpathファイルを削除します。 clean and build the project, import it back into Eclipse and then reset your Java compiler. Clean and build your projectおよびEclipse。それは私のために働いた

9
Henry

コンパイラ設定を変更してJava 6構文を受け入れ、Java 5出力を生成することもできます(覚えています)。また、ランタイムで必要な場合は、「生成されたクラスファイルの互換性」を少し低く設定します。 更新:Eclipseをチェックしましたが、ソースの互換性を1.6に、クラスの互換性を1.5に設定すると文句を言います。 1.6が許可されていない場合は、通常、ソース内の問題の@Override注釈を手動でコメントアウトします(これはケースに役立ちません)。

pdate2:手動ビルドのみを行う場合は、元のプロジェクトを新しいプロジェクトにコピーし、Javaソースから@Overrideアノテーションを削除する小さなプログラムを書くことができます。 Eclipseのクリーンプロジェクト。

7
akarnokd

Retro Weaverを試して、Java 6クラスからJavaバージョンを作成することもできます。

1
mie

Eclipseを使用して、「@ Override」のすべてのインスタンスを検索および置換(削除)します。次に、「クリーンアップ」を使用して、インターフェイス以外のオーバーライドを再度追加します。

手順:

  1. ソースファイルを含むプロジェクトまたはフォルダーを選択します。
  2. [検索]> [検索...](Ctrl-H)に移動して、[検索]ダイアログを表示します。
  3. [ファイル検索]タブに移動します。
  4. 「テキストを含む」に「@Override」、「ファイル名パターン」に「* .Java」と入力します。 [置換...]、[OK]の順にクリックして、[@ Override]のすべてのインスタンスを削除します。
  5. 「ウィンドウ>設定> Java>コードスタイル>クリーンアップ」に進み、新しいプロファイルを作成します。
  6. プロファイルを編集し、「コードの欠落>欠落している注釈の追加> @Override」以外のすべてのチェックを外します。 [インターフェイスメソッドの実装]がオフになっていることを確認します。
  7. ソースファイルを含むプロジェクトまたはフォルダーを選択します。
  8. [ソース]> [クリーンアップ...](Alt + Shift + s、次にu)、[完了]の順に選択して、インターフェイス以外のオーバーライドを追加します。
1
Peter Tseng

IDEプロジェクトがJava 6 JRE以上を使用するようにセットアップされるように構成することにより、Eclipseエラーが除去されない場合があります。私にとってはrestartのEclipe IDEが助けた。

0
IstaLibera

[Windows]タブからコンパイラコンプライアンス設定を1.6または1.7に変更し、優先、Java、コンパイラ、コンパイラコンプライアンスの設定を行っても、この問題は引き続き発生していました。アイデアは、プロジェクトフォルダーに移動し、Javaを右クリックして、コンパイラー準拠を1.6以上に設定する必要があるということです。これは私のために働いた。

0
Ranjan

私はあなたの問題を理解しています、jdkをjdkから1.5以上に変更します

0