在文章What issues should be considered when overriding equals and hashCode in Java?中詳細解釋瞭如何在Java中使用getClass比較兩個對象的RUntime類型(我們將其等同)來編寫適當的相等方法。我明白我們這樣做的原因是爲了確保如果B擴展A,我們需要a.equals(b)= b.equals(a)(反身性)。在Java中重寫equals - getClass()方法
它在我看來確實提供了一個很大的限制。如果你有一個對象集合A,那麼檢查一些B對象,因爲它們是A的子類,那麼a.equals(b)總是假的......也許,在某些時候,我們應該堅持舊的instanceof
運營商提供多態性並允許子類型相等?你怎麼看?
...是的。你說的很明顯是真的。有什麼問題? – 2012-08-06 15:41:14
我沒有任何具體問題,我想知道是否有一種做法會受到青睞,以及我是否錯過了一個重要的觀點 – Bober02 2012-08-06 15:43:14