我有一個java項目,我需要兩個身份比較(是2參考相同)和平等比較(兩個對象都包含相同的數據)。
我的解決方案是不覆蓋equals/hashcode,並將isEqual方法添加到我的對象。
有沒有更好的模式來處理這種情況?java:需要身份和同一時間
編輯:
這是關於此特定需求的更多信息。
默認情況下,我們有:
equals
執行contains
在equals
方面中實現的身份檢查(==),因此使用==
但我使用我想要:
equals
執行相等性檢查(對象包含相同的數據)contains
保持與==實施
我不能同時兼得,所以一個解決方案是實現我 自己的平等檢查並具有:
contains
保持相同,用==- 實施
isEqual
,並用它來代替equals
另一種解決方案是實現我自己包含使用==:
- 實施
customContains
使用==並使用它,而不是contains
- 重載
equals
檢查對象是否包含相同的數據
哪個最好?有沒有更好的方法來做到這一點?
你是什麼意思,這兩個引用是否相同? –
overrite equals()並使用==和equals();)它真的取決於你想要使用它的方式。 – soulcheck
爲什麼你不想完全重寫它們? – Woot4Moo