我无法理解下面一段代码中的某一行

时间:2014-03-15 14:40:34

标签: java equals

我无法弄清楚“其他人”的重点是什么?'线。 在第一个条件测试中,执行控制以检查参数是否为空,这对我来说是有意义的。 其次,如果课程相同,那么可以进行比较,这对我来说也是有意义的。但是我失去了,因为我不了解创建另一个Person对象的必要性并将其用作参考。

    public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }
    if (getClass() != obj.getClass()) {
        return false;
    }

    final Person other = (Person) obj;
    if (!Objects.equals(this.surname, other.surname)) {
        return false;
    }
    if (!Objects.equals(this.name, other.name)) {
        return false;
    }
    return true;
}

感谢您的时间:)

1 个答案:

答案 0 :(得分:3)

通过将other声明为final,这意味着一旦设置了值就无法更改。

您要转换为Person对象的原因是,参数类型为Object。这意味着您可以获得Object类中的所有方法。通过将其强制转换为Person,您可以访问Person类中的所有方法。通过以下方式可以实现相同的功能:

((Person)obj).personMethod();