私は、それhashCode
が と一致しequals
、それequals
が と一致していることを確認する契約上の必要性を十分に認識していcompareTo
ます。ただし、これは実際にはしばしば違反されます。この一貫性を自動的にテストできるツール、手法、またはライブラリはありますか?
残念ながら、答えは「いいえ」だと思いますが、手動でカスタムテストを書く必要がなく、ライブラリ呼び出しやフレームワークを利用できるこの種の単体テストを作成できると便利です。それが重要な場合ごとに。
一貫性の意味が明確でない場合は、以下hashCode
をequals
参照してください。
equals(Object) メソッドに従って 2 つのオブジェクトが等しい場合、2 つのオブジェクトのそれぞれで hashCode メソッドを呼び出すと、同じ整数結果が生成される必要があります。
equals
および私は以下compareTo
を参照します。