下面是為實現乙個高質量equals方法的處方:
1、使用==操作符檢查「實參是否為指向物件的乙個引用」。
2、使用instanceof操作符檢查「實參是否為正確的型別」。
3、把實參轉換到正確的型別。
4、對於該類中的每乙個「關鍵」域,檢查實參中的域是否與當前物件中對應的域值匹配。數值可以直接使用==比較,例項可以使用field==null?o.field==null:field.equals(o.field)。
5、當你編寫完equals方法之後,應該問自己三個問題:他是否是對稱的、傳遞的、一致的?
一些告戒:
1、當你改寫equals的時候,總要改寫hashcode。
2、不要企求你的equals方法過於繁雜(周全)。
3、不要使equals方法依賴於不穩定的資源,比如transient型別。
java 編寫高質量的equals
1,使用 操作符檢查 引數是否為這個物件的引用 是則返回true 2,使用instanceof 操作符檢查 引數是否為正確的型別 如果不是返回false 3,把引數轉換為正確的型別 4,對於該類中的每個 關鍵 域,檢查引數中的域是否與物件中對應的域相匹配 5,當你編寫完成了equals方法後,應該問...
Java中equals的用法
equals 方法是string類從它的超類object中繼承的,被用來檢測兩個物件是否相等,即兩個物件的內容是否相等,區分大小寫。對於字串變數來說,使用 和 equals 方法比較字串時,其比較方法不同。比較兩個變數本身的值,即兩個物件在記憶體中的首位址。equals 比較字串中所包含的內容是否相...
java中的equals用法
在object 類中定義有 1 public boolean equals object object 方法提供定義物件是否 相等 邏輯。2 object的equals方法定義為 x.equals y 當x和y是同乙個物件的引用時,返回true,否則返回false 3 在其他一些類中,例如strin...