温馨提示×

java中equal 在自定义类中如何实现

小樊
86
2024-08-18 20:01:37
栏目: 编程语言

在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()方法,比较了nameage属性是否相等。需要注意的是,一般情况下需要同时重写hashCode()方法,确保在使用集合类时对象的hash值一致。

0