2010-12-28 12 views
1

私はAndroidプロジェクトを完全にうまく使っています。その後、別のワークスペースを作成し、そのプロジェクトをインポートしました。この新しいワークスペースでEclipseは、私はいくつかの同様の問題やアドバイスのようないくつかのメソッドについて@Override注釈を削除する例を示します。同じプロジェクトの新しいコンパイラの問題別のワークスペース

 button.setOnClickListener(new View.OnClickListener() { 

     @Override 
    public void onClick(View v) { 

    } 
    }); 

が、私はプロジェクトのプロパティ、のJREとAndroidのAPIをチェックする - すべてが類似しています。 私はプロジェクトをきれいにしようとしましたが、これは役に立ちませんでした。

Eclipseのエラーの説明:

The method onClick(View) of type new View.OnClickListener(){} must override a 
superclass method Ovals.java /FlyingOvals/src/com/g/g line 38 Java Problem 

なぜそれができるとどこ私は、これらの問題を修正するはず?

答えて

3

新しいワークスペースでJava準拠レベルを確認してください。 Java 5では、インタフェースからメソッドを実装するときに@Overrideは許可されていませんでした。 Java 6ではこれが許可されました。 Eclipseは、適用可能であれば、このケースに対するコードスタイルの警告にフラグを立てます。 JavaコンプライアンスレベルをJava 5に設定する(プロジェクトで理想的に設定を維持する)か、プロジェクトに対してこの警告を選択的に無効にすることができます。

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

参照プロジェクトのプロパティ - > Javaコンパイラ - >エラー警告。

基本クラスが変更されたときに警告するので、@Overrideアノテーションの使用をお勧めします。メソッドabc()とそのメソッドをオーバーライドする派生クラスBarを持つクラスFooを考えてみましょう。 @OverrideでBarのabc()メソッドにタグを付けると、誰かがFooでabc()メソッドの名前を変更すると、Bar.abc()は宣言されているものを上書きしなくなるので警告が表示されます。

+0

私はstackoverflowがそんなに大好きです!どうもありがとう! – Eugene

関連する問題