2011-08-28 54 views

回答

3

如果添加的MyCustomClass實例的列表,然後檢查是否包含MyCustomClass又例如,將始終返回false,除非你重寫你的自定義類equals方法。 equals方法檢查另一個對象是否在功能上等於這個對象。

確保在每次重寫equals方法時覆蓋hashCode方法。 hashCode應該爲兩個相等的對象返回相同的值。另外,等於應該寫成對稱:a.equals(b)當且僅當b.equals(a)

檢查javadoc of java.lang.Object中的equals和hashCode。

+0

謝謝@ berry120,@ Jesper我重寫equals(obj)方法,它對我來說工作正常 –

1

您很有可能沒有實施equals()hashcode()myCustomClass。您需要正確執行並根據合同執行,詳情請參閱here

+0

我應該overide the equal()在mycustom類中的方法?? istnt它的列表界面的屬性?困惑??反正謝謝qick reponse –

+0

@chrish是的,你應該,不,它不是「列表界面的屬性」。 – Jesper

+0

@chrish是的,覆蓋等於mycustom類 - 它是一個很好的做法,用「Override」註解來註釋它(它是ATSIGNoverride,由於某種原因,不能在那裏使用at符號),所以它肯定是被覆蓋的(編譯器會抱怨)在Java中沒有像「屬性」這樣的東西(不像C#中的任何東西)。 – berry120

相關問題