如何重写 Java 中的 equals() 方法
重写 equals() 方法对于自定义自定义相等比较行为至关重要Java 中的对象。这是帮助您有效地做到这一点的综合指南:
问题:
在给定的代码片段中,您在尝试使用 equals( 比较年龄字段时遇到错误),因为它是为 String 对象设计的。整数值需要使用 == 运算符。
解决方案:
要解决此错误,请使用 == 运算符来比较原始数据类型(例如年龄)。修改后的代码片段如下:
public boolean equals(People other){ boolean result; if((other == null) || (getClass() != other.getClass())){ result = false; } // end if else{ People otherPeople = (People)other; result = name.equals(other.name) && age == other.age; } // end else return result; } // end equals
补充说明:
1.重写过程:
2. Null 检查:
3.类比较:
4.自定义比较逻辑:
示例:
提供的示例覆盖 Person 类的 equals(),比较姓名和年龄是否相等:public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != this.getClass()) { return false; } final Person other = (Person) obj; if ((this.name == null) ? (other.name != null) : !this.name.equals(other.name)) { return false; } if (this.age != other.age) { return false; } return true; }
结论:
重写equals() 方法使您能够为自定义对象定义自定义的相等比较。通过仔细遵循提供的步骤和示例,您可以根据对象的特定属性有效地比较对象。以上是如何正确重写 Java 中的 equals() 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!