1290

プロジェクトをEclipseに再インポートする必要があるときはいつでも(Eclipseを再インストールした場合、またはプロジェクトの場所を変更した場合)、オーバーライドされたメソッドのほとんどすべてが正しくフォーマットされておらず、エラーが発生します。

メソッドはスーパークラスメソッドをオーバーライドする必要があります

これは何らかの理由でAndroidプロジェクトに当てはまることに注意してください。メソッドの引数の値は常に入力されるとは限らないため、自分で手動で入力する必要があります。例えば:

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //These arguments have their correct names
    public void onCreateContextMenu(ContextMenu menu, View v, 
                                    ContextMenuInfo menuInfo) {                 
    }

});

最初は次のように入力されます。

list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {

    //This methods arguments were not automatically provided    
    public void onCreateContextMenu(ContextMenu arg1, View arg2,
                                    ContextMenuInfo arg3) {
    }

});

奇妙なことに、コードを削除してEclipseにメソッドを自動的に再作成させると、すでに持っていたのと同じ引数名が使用されるため、問題がどこにあるのかよくわかりません。それ以外の場合は、メソッドを自動フォーマットします。自分。

これは、オーバーライドされたすべてのメソッドを手動で手動で再作成する必要があるため、非常に面倒になります。誰かがこれが起こる理由またはそれを修正する方法を説明できるなら。とてもうれしくなる。

別のメソッドの引数内にあるメソッドのフォーマット方法が原因である可能性がありますか?

4

13 に答える 13

1448

EclipseはデフォルトでJava1.5に設定されており、インターフェースメソッドを実装するクラスがあります(Java 1.6では注釈を付けることができます@Overrideが、Java 1.5ではスーパークラスメソッドをオーバーライドするメソッドにのみ適用できます)。

プロジェクト/IDE設定に移動し、Javaコンパイラレベルを1.6に設定します。また、Eclipseからプログラムを実行するためにJRE1.6を選択していることを確認してください。

于 2009-11-05T03:33:53.893 に答える
308

Eclipse Galileoを使用して、[Eclipse]-> [Preferences]メニュー項目に移動し、ダイアログで[JavaandCompiler]を選択します。

現在でも、コンパイラのコンプライアンスレベルは1.6である可能性がありますが、この問題は引き続き発生します。次に、 [プロジェクト固有の設定を構成する...]リンクを選択すると、プロジェクトが1.5に設定されていることがわかります。次に、これを1.6に変更します。影響を受けるすべてのプロジェクトに対してこれを行う必要があります。

このビザンチンメニュー/ダイアログインターフェイスは、Eclipseの貧弱なUIデザインの典型です。

于 2010-09-08T03:48:49.563 に答える
80

これがalphazeroとPaulの方法の両方を試したが、それでも機能しなかった他の誰かに起こった場合。

私の場合、プロジェクト>クリーン...を実行した後でも、eclipseはコンパイルエラーを「キャッシュ」しました。

[プロジェクト]>[自動的にビルド]のチェックを外し、[プロジェクト]> [クリーン]を実行してから、もう一度ビルドする必要がありました。

また、疑わしい場合は、Eclipseを再起動してみてください。これにより、多くの厄介で説明のつかないエラーを修正できます。

于 2011-01-26T17:22:19.930 に答える
41

この問題を解決するには、プロジェクトのプロパティ->Javaコンパイラ->コンパイラのコンプライアンスレベルを1.6に選択->適用に移動します。

于 2011-12-26T09:38:05.650 に答える
22

パウロの答えは部分的に私のために働いた。そのときはまだ1つのエラーがありました。そのため、それに加えて、[プロパティ]-> [プロジェクトファセット]に移動し、Javaバージョンを1.5から1.6に設定する必要がありました。

多分それは助けになります。

于 2014-02-05T16:25:08.470 に答える
14

私の場合、上記の解決策はどれもうまくいきませんでした。

プロジェクトワークスペース内のファイルを削除する必要がありました。

  • 。事業
  • .classpath

そしてフォルダ:

  • 。設定

次に、以前に機能していた同様のプロジェクトからのものをコピーしました。これは私の壊れたプロジェクトをなんとか修正しました。

もちろん、前の選択肢を試す前にこの方法を使用しないでください!。

于 2011-12-28T20:31:27.500 に答える
14

上記のいずれも役に立たない場合は、「代替JRE」ではなく、適切な「実行環境」が選択されていることを確認してください。

下にあります:

プロジェクト->ビルドパス->ライブラリ

を選択しJRE System LibraryてクリックしますEdit...

「AlternateJRE...」を選択した場合は、のような適切な「ExecutionEnvironment」に変更してくださいJavaSE-1.8 (jre1.8.0_60)。理由はわかりませんが、これで解決します。

于 2015-09-04T21:44:13.593 に答える
11

この問題に遭遇するのはこれが2度目です。初めてalphazeroの推奨に従って、それは機能しました。しかし、2回目に1.6に設定すると、クリーンアップして再構築した後、このエラーが「CACHE」のように機能しません。

Rollin_sが言ったように「自動ビルド」をオフにしてみてください->エラーはまだここにあります!

そこで、問題のあるプロジェクト(すでに1.6に設定されている)をパッケージエクスプローラーから削除して再度インポートしました->再構築を開始し、今回はエラーは発生しません

これが誰かを助けることを願っています

于 2012-12-14T06:20:19.203 に答える
11

私の場合、この問題はMavenプロジェクトをEclipseにインポートしたときに発生しました。これを解決するために、私は以下を追加しましたpom.xml

<properties>
   ...
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
</properties>

次に、プロジェクトのコンテキストメニューで、[Maven]-> [プロジェクトの更新...]に移動し、[OK]を押します。

それでおしまい。お役に立てれば。

于 2017-02-22T18:30:40.957 に答える
10

修正はスーパークラスメソッドのエラーをオーバーライドする必要があります。エラーは難しくありません。Java1.6から@Overrideアノテーションをインターフェイスメソッドと一緒に使用できるため、Javaソースバージョンを1.6に変更する必要があります。ソースバージョンを1.6に変更するには、以下の手順に従います。

  1. [プロジェクト]、[右クリック]、[プロパティ]の順に選択します
  2. Javaコンパイラを選択し、[プロジェクト固有の設定を有効にする]チェックボックスをオンにします
  3. 次に、コンパイラのコンプライアンスレベルを1.6にします。
  4. 変更を適用する
于 2015-04-21T06:23:58.470 に答える
6

私の場合、上記の解決策はどれも機能しません。ソースコードを別のフォルダにチェックアウトする必要があります。Eclipseから、[ファイル]>[ワークスペースの切り替え]>[その他...]を選択し、コードを新しいワークスペースにインポートします。その後は動作します。

于 2013-06-16T04:32:40.777 に答える
2

これは、Mavenプロジェクトが異なるコンパイラーコンプライアンスレベルを使用し、EclipseIDEが異なるコンパイラーコンプライアンスレベルを使用する場合に発生します。これを修正するには、MavenプロジェクトのコンパイラコンプライアンスレベルをIDEが使用するレベルに変更する必要があります。

1)EclipseIDEでのJavaコンパイラコンプライアンスレベルの使用を確認するには

*)ウィンドウ->設定->コンパイラ->コンパイラコンプライアンスレベル:1.8(または1.7、1.6 、、 ect)

2)MavenプロジェクトのJavaコンパイラコンプライアンスレベルを変更するには

*)[プロジェクト]->[プロパティ]->[Javaコンパイラ]を選択->コンパイラコンプライアンスレベルの変更:1.8(または1.7、1.6、など)

于 2018-12-21T18:03:54.720 に答える
0

2020年です-

プロジェクト>右クリック>Javaコンパイラ>コンパイラコンプライアンスレベル>これを1.8[または最新レベル]に変更します

ここに画像の説明を入力してください

于 2020-08-29T14:14:34.490 に答える