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