2017-06-02 20 views
2

我々は等価とハッシュコードの比較が必要ないサブクラスを持っています。スーパークラスで扱われます。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与えている:オーバーライドメソッドは単に、スーパークラスで定義された同じメソッドを呼び出します。

どうすれば解決できますか?

答えて

3

このメソッドを削除するには、findbugs-exclude-filter.xmlまたはSuppressWarnings/SuppressFBWarningsでFindBugsエラーを無視します。

+0

私は注釈を使用しましたが、それは適切な解決策ですか? – xploreraj

+0

@xploreraj、はい。これがあなたの意図であるため、FindBugsエラーはこの場合には偽陽性です。それを抑えるのはいいですね。 –

+0

Cool。そうです! – xploreraj