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

StackOverflow https://stackoverflow.com/questions/987973

質問

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

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

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

役に立ちましたか?

解決

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

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

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

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


アップデート:

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

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

他のヒント

次のように実行します。

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

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

プロジェクトファセットを持つ場合にも確認してください。 Javaのバージョンが上書きされてます。

プロジェクト固有の設定を有効にすることができます。プロジェクトProject > Properties > Java Compilerを選択し、uncheckまたは変更Enable project specific settingsJdk 1.6し、対応するJREを忘れないで上記の。
それは動作しません包み、日食からプロジェクトを削除.settings folders.project.classpathファイルを削除します。 clean and build the project, import it back into eclipse and then reset your Java compiler. Clean and build your projectand日食。それは私のために働いた。

(私が覚えている)

は、Java 6の構文を受け入れるが、Java 5の出力を生成するコンパイラの設定を変更することができます。そして、あなたのランタイムで必要に応じてビット下の「生成されたクラスファイルの互換性」を設定します。 のアップデート:私はEclipseを確認し、私は1.5に1.6とクラスの互換性にソース互換性を設定した場合、それは文句を言います。 1.6が許可されていない場合、私は通常、手動で(あなたのケースを助けることはありません)、ソース内の問題@Override注釈をコメントアウトします。

アップデート2:を あなたが唯一の手動ビルドを行う場合は、新しいものにそのコピー元のプロジェクトの小さなプログラムを書くことができ、Javaのソースからの@Override注釈を取り除き、あなただけのEclipseでクリーンプロジェクトを打っています。

また、Java 6クラスからのJavaのバージョンを作成するために、レトロウィーバーを試すことができます。

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

手順:

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

私が理解し、あなたの問題は、1.5を演算子:GreaterThanためにあなたのJDKから、あなたのJDKを変更する

IDE プロジェクトが Java 6 JRE 以降を使用するように設定しても、Eclipse エラーが解消されない場合があります。私にとっては 再起動 Eclipe IDE の機能が役に立ちました。

でもから1.6または1.7へのコンパイラー準拠設定を変更した後   ウィンドウのタブは、それから、その後のjava、コンパイラや設定をprefernces   コンパイラー準拠、私はまだこの問題を抱えていました。アイデアは、我々であります   プロジェクトフォルダを移動する必要があり、右クリックし、Javaおよびコンパイラを設定   1.6またはhigerへの準拠。これは私のために働いています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top