如何重寫Java 中的equals() 方法
重寫equals() 方法對於自訂自訂相等性比較行為至關重要Java 中的物件。這是幫助您有效地做到這一點的綜合指南:
問題:
在給定的程式碼片段中,您在嘗試使用equals( 比較年齡字段時遇到錯誤),因為它是為String 物件設計的。整數值需要使用 == 運算子。
解決方案:
要解決此錯誤,請使用 == 運算子來比較原始資料類型(例如年齡)。修改後的程式碼片段如下:
public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age == other.age; } // end else return result; } // end equals
補充說明:
1.重寫流程:
2. Null 檢查:
3.類別比較:
4.自訂比較邏輯:
範例:
提供的範例覆蓋Person 類別的equals(),比較姓名和年齡是否相等:
public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
結論:
重寫equals() 方法可讓您為自訂物件定義自訂的相等比較。透過仔細遵循提供的步驟和範例,您可以根據物件的特定屬性有效地比較物件。
以上是如何正確重寫 Java 中的 equals() 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!