在Java中,自定义类需要重写equals()
方法来实现对象的比较。equals()
方法用于比较两个对象是否相等,通常会根据对象的属性进行比较。以下是一个示例:
public class Person {
private String name;
private int age;
// 构造方法
// getter 和 setter 方法
@Override
public boolean equals(Object obj) {
// 检查对象是否为同一个引用
if (this == obj) {
return true;
}
// 检查对象是否为null或者类型不匹配
if (obj == null || getClass() != obj.getClass()) {
return false;
}
// 强制类型转换
Person person = (Person) obj;
// 比较属性
return age == person.age && Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
上面的示例中,重写了equals()
方法,比较了name
和age
属性是否相等。需要注意的是,一般情况下需要同时重写hashCode()
方法,确保在使用集合类时对象的hash值一致。