私は、同一性比較(2つの参照が同じか)と等価比較(両方のオブジェクトに同じデータが含まれているか)の両方が必要なJavaプロジェクトを持っています。
私の解決策は、equals/hashcode をオーバーライドせず、オブジェクトに isEqual メソッドを追加することです。
この状況に対処するためのより良いパターンはありますか?
編集:
これは、この特定の必要性に関する詳細情報です。
デフォルトでは、次のものがあります。
equals
身元チェックの実行 (==)contains
の観点から実装されているequals
ため、 == を使用
しかし、私の使用法では、次のことが必要です。
equals
等価性チェックを実行する (オブジェクトに同じデータが含まれている)contains
== で実装されたままにする
両方を同時に持つことはできないため、1 つの解決策は、独自の等価チェックを実装して、次のようにすることです。
contains
==を使用して同じままisEqual
代わりに実装して使用するequals
別の解決策は、== を使用する独自のコンテンツを実装することです。
customContains
== を使用して実装し、代わりに使用するcontains
equals
オブジェクトに同じデータが含まれているかどうかを確認するためのオーバーライド
どれが最高ですか?これを行う別のより良い方法はありますか?