如果只是一些對象的字段表示實際狀態,我想這可能重寫equals
和hashCode
時忽略...忽略equals/hashCode中某些字段的潛在缺陷?
我得到這個一種不安的感覺,雖然,想問問,
- 這是常見的做法嗎?
- 這種方法有沒有什麼潛在的缺陷?
- 當涉及到忽略
equals
/hashCode
中的某些字段時,是否有任何文檔或準則?
在我的特定情況下,我在探索一個問題的狀態空間。我想保留一組訪問狀態,但我也考慮包括導致該狀態的路徑。顯然,兩個國家是平等的,儘管它們是通過不同的途徑找到的。
正如你所提到的,你不要在你的equals或hashCode中包含「路徑」() –
我喜歡這個答案,但是你可以避免我的三個問題:-) – aioobe
回答了你的問題。 –