未使用のメソッドをインターフェースから削除しました。javacとEclipseが、実装クラスがまだそれをオーバーライドすると主張しているという事実について不平を言うことを期待していました。
@Override
public void thisMethodNoLongerOverridesAnything() {}
ただし、エラーや警告は表示されません。
この場合に文句を言うようにjavacまたはEclipseを構成する方法はありますか?
@OverrideのAPIドキュメントによると
メソッドにこのアノテーションタイプのアノテーションが付けられている場合 、次の条件の少なくとも1つが当てはまらない限り、コンパイラはエラーメッセージを生成する必要があります。
- このメソッドは、スーパータイプで宣言されたメソッドをオーバーライドまたは実装します。
- このメソッドには、Objectで宣言されたパブリックメソッドのシグネチャと同等のオーバーライドのシグネチャがあります。
したがって、あなたのmothodがまだ何かをオーバーライドしているか、javacとeclipseの両方にバグを見つけました。これは疑わしいです。
エラーは間違いなく発生します。
インターフェイスA{voidfunA(); }
class Test implements A{
@Override
public void funA(){
}
@Override
public void B(){
}
}
エラー:タイプTestのメソッドB()は、スーパータイプメソッドをオーバーライドまたは実装する必要があります
Sugessions: create B() in supertype A
remove Override annotation
Eclipseの場合:
Properties > Java Compiler > Errors/Warnings
@Override
注釈はデフォルトで下にありAnnotations
、無視されます。
編集:質問を読み直してください。あなたがそれを逃しているときではなく、あなたが不必要なものを持っているならば、あなたは警告されたいです@Override
。
JDK 1.5を使用している場合、@Overrideアノテーションは無視されます。
これを見てください(->日食設定のJDKコンプライアンスが1.5に設定されている可能性もあります)。