在 Java 中,要實現(xiàn)精確比較(例如,檢查兩個對象是否相等),可以通過重寫 equals()
方法來實現(xiàn)。equals()
方法是 Object
類的一部分,因此所有 Java 類都繼承了這個方法。為了實現(xiàn)精確比較,需要遵循以下步驟:
equals()
方法。true
。null
,或者是否屬于不同的類。如果是,則返回 false
。true
;否則,返回 false
。下面是一個示例代碼:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
// 檢查是否為同一個實例
if (this == obj) {
return true;
}
// 檢查是否為 null 或者不同的類
if (obj == null || getClass() != obj.getClass()) {
return false;
}
// 將 obj 強制轉(zhuǎn)換為 Person 類型
Person person = (Person) obj;
// 比較關(guān)鍵字段
if (age != person.age) {
return false;
}
if (name != null ? !name.equals(person.name) : person.name != null) {
return false;
}
// 所有關(guān)鍵字段都相等,兩個對象相等
return true;
}
}
注意:當(dāng)你重寫 equals()
方法時,還應(yīng)該重寫 hashCode()
方法。hashCode()
方法用于返回對象的哈希碼值,而且當(dāng)兩個對象相等時,它們的哈希碼值也應(yīng)該相等。如果不這樣做,那么你的類將無法正常工作在基于哈希的集合(如 HashSet
和 HashMap
)中。