2012-08-05 33 views

回答

6

您應該使用equals()方法。如果您想讓名稱和/或編號比較爲平等,請在equals()方法中執行。

這是Java determines equality的默認方式。

而且,看看一些答案了這樣一個問題:Overriding the java equals() method quirk

equals()hashcode()之間的關係。這兩個都被Collections使用。

3

默認equals繼承自Object#equals()比較參考。換句話說,如果2個對象相同(內存中的相同對象),則返回true。

如果您希望等於返回true,如果您的兩個對象共享相同的特徵,即使它們是不同的對象,那麼您應該覆蓋等於並比較這些特徵。

如果您覆蓋等於,you should also override hashcode

+2

而且您還應該重寫hashCode(),以便如果兩個對象相等,則它們具有相同的哈希碼。 – 2012-08-05 20:41:04

+0

@ AndyThomas-Cramer是 - 已編輯。 – assylias 2012-08-05 20:42:19

相關問題