我々は等価とハッシュコードの比較が必要ないサブクラスを持っています。スーパークラスで扱われます。PMDとFindBugsが矛盾します
しかし、FindBugsのが与えたエラー - EQ_DOESNT_OVERRIDE_EQUALS:このクラスはequalsメソッドやフィールドを追加定義するクラスを拡張しますが、メソッド自体に等しく定義されていません。したがって、このクラスのインスタンスの等価性は、サブクラスと追加されたフィールドの同一性を無視します。これが意図されたものであることと、equalsメソッドをオーバーライドする必要がないことを確認してください。 equalsメソッドをオーバーライドする必要がない場合でも、サブクラスのequalsメソッドがsuper.equals(o)
を呼び出した結果を返すという事実を文書化するには、それをオーバーライドすることを検討してください。私達はちょうどsuper
を呼び出すことでオーバーライドをした
:
@Override
public boolean equals(Object o) {
return super.equals(o);
}
@Override
public int hashCode() {
return super.hashCode();
}
今PMDがエラー - UselessOverridingMethod与えている:オーバーライドメソッドは単に、スーパークラスで定義された同じメソッドを呼び出します。
どうすれば解決できますか?
私は注釈を使用しましたが、それは適切な解決策ですか? – xploreraj
@xploreraj、はい。これがあなたの意図であるため、FindBugsエラーはこの場合には偽陽性です。それを抑えるのはいいですね。 –
Cool。そうです! – xploreraj