プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要があります」エラー 質問する

プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要があります」エラー 質問する

プロジェクトを 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 にメソッドを自動的に再作成させると、すでに持っていたのと同じ引数名が使用されるため、メソッドが自動的にフォーマットされる以外にどこに問題があるのか​​よくわかりません。

オーバーライドしたメソッドをすべて手動で再作成しなければならないので、かなり面倒です。なぜこのようなことが起こるのか、またはどのように修正するのかを説明できる方がいらっしゃいましたら、大変助かります。

おそらく、別のメソッドの引数内にあるメソッドをフォーマットする方法が原因でしょうか?

ベストアンサー1

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

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

おすすめ記事