首页 > Java > java教程 > 如何正确重写 Java 中对象比较的 equals 方法?

如何正确重写 Java 中对象比较的 equals 方法?

Linda Hamilton
发布: 2024-12-22 18:32:09
原创
801 人浏览过

How Do I Correctly Override the `equals` Method for Object Comparison in Java?

理解 Java 中的对象相等性

Java 中为了比较两个对象的相等性,经常使用 equals 方法。在所描述的场景中,目标是重写具有姓名和年龄字段的 People 类的 equals 方法,以方便 People 对象之间的比较。

提出的初始实现对年龄字段使用 equals 方法,该方法是整数类型。然而,正如所指出的, equals 方法是专门为比较 String 对象而设计的。

解决方案:比较整数字段

要比较整数字段,建议使用使用 == 运算符代替 equals 方法。 == 运算符直接比较原始数据类型的值,而不是调用 equals 方法。

正确实现 Equals

equals 方法的正确实现People 类应如下所示:

@Override
public boolean equals(Object obj) {
    if (obj == null) {
        return false;
    }

    if (obj.getClass() != this.getClass()) {
        return false;
    }

    final People other = (People) obj;
    if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) {
        return false;
    }

    if (this.age != other.age) {
        return false;
    }

    return true;
}
登录后复制

在此实现:

  • 它首先检查传递的对象是否为 null、不同的类或具有 null 名称字段。
  • 如果这些检查通过,则使用 == 运算符进行比较年龄字段。
  • 如果所有比较结果都为 true,则返回 true,否则返回 false。

以上是如何正确重写 Java 中对象比较的 equals 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板