equals()、compareTo()、またはこれらと同等の呼び出しのうち、オブジェクトと自身との等価比較が行われているものを報告します。
これらのメソッドのメソッド契約は、このような呼び出しが equals() の場合は true を、compareTo() の場合は 0 を常に返すことを指定しています。
このインスペクションは、Objects.equals()、Objects.deepEquals()、Arrays.equals()、Comparator.compare()、テストフレームワーク (JUnit, TestNG, AssertJ) の assertEquals() メソッド、Integer.compare()、Integer.compareUnsigned() およびこれらと同等のメソッドへの呼び出しもチェックします。
例:
class Foo {
boolean foo(Object o) {
return o.equals(o); // 警告
}
boolean bar(String[] ss) {
return Arrays.equals(ss, ss); // 警告
}
}
拡張できないライブラリクラス (String など) およびプリミティブ型に対してのみテストアサーションレポートを報告するには、オプションを使用します。
このオプションは、equals() メソッドをテストする場合に役立つことがあります。