,它是用来比较两个对象的内容是否相等的。在默认情况下,equals()方法会比较两个对象的地址是否相等,即它们是否是同一个对象。但是,我们可以通过重写equals()方法来改变这种比较方式,使它比较对象的内容是否相等。

一般情况下,我们需要重写equals()方法来比较对象的属性值是否相等。在重写equals()方法时,我们需要遵循以下几个原则:

  1. 自反性:a.equals(a)应该返回true。

  2. 对称性:a.equals(b)和b.equals(a)应该返回相同的结果。

  3. 传递性:如果a.equals(b)返回true,b.equals(c)返回true,那么a.equals(c)也应该返回true。

  4. 一致性:如果两个对象的属性值没有发生改变,那么多次调用a.equals(b)应该返回相同的结果。

  5. 非空性:a.equals(null)应该返回false。

例如,我们可以重写String类的equals()方法,使它比较字符串的内容是否相等:

public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }
    if (obj == this) {
        return true;
    }
    if (obj.getClass() != getClass()) {
        return false;
    }
    String other = (String) obj;
    return Arrays.equals(value, other.value);
}

在这个重写的equals()方法中,我们首先判断obj是否为null,如果是就返回false;然后判断obj和当前对象是否是同一个对象,如果是就返回true;接着判断obj的类型是否和当前对象的类型相同,如果不是就返回false;最后比较两个字符串的内容是否相等,如果相等就返回true,否则返回false

Javalang包下的 equals 方法比较一个对象是否相等

原文地址: http://www.cveoy.top/t/topic/fsLK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录