如何为具有字符串和整数字段的对象正确重写 Java 中的 equals() 方法?
重写 Java 中的 Equals 方法
在 Java 中,equals 方法是比较对象是否相等的基本工具。当您在自定义类中重写 equals 方法时,您可以定义特定标准来确定该类的两个对象是否等效。
理解问题
考虑具有姓名和年龄字段的人员类。要比较两个 Person 对象是否相等,您可以重写 equals 方法。但是,如果年龄字段是整数,则尝试使用 equals 方法进行比较时可能会遇到错误,该方法旨在比较字符串。
解决方案
要解决这个问题,可以使用相等运算符 == 来比较整数。下面是一个处理字符串和整数比较的重写 equals 方法的示例:
@Override 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; }
在此修改后的代码中:
- 我们首先执行空检查和类检查以确保我们正在比较两个有效的 Person 对象。
- 我们使用 equals 方法比较名称字段,因为它们是字符串。
- 我们使用 == 运算符来比较年龄字段,因为它们是整数。
示例用法
这里有一个示例如何使用重写的 equals 方法:
public class Main { public static void main(String[] args) { List<Person> people = new ArrayList<>(); people.add(new Person("John Doe", 30)); people.add(new Person("Jane Doe", 25)); // Check for equality using the overridden equals method boolean equal = people.get(0).equals(people.get(1)); System.out.println(equal); // Output: false } }
在此示例中, equals 方法正确判断两个不同名字和年龄的 Person 对象不相等。
以上是如何为具有字符串和整数字段的对象正确重写 Java 中的 equals() 方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

系统对接中的字段映射处理在进行系统对接时,常常会遇到一个棘手的问题:如何将A系统的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

在使用IntelliJIDEAUltimate版本启动Spring...

Java对象与数组的转换:深入探讨强制类型转换的风险与正确方法很多Java初学者会遇到将一个对象转换成数组的�...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

在使用TKMyBatis进行数据库查询时,如何优雅地获取实体类变量名以构建查询条件,是一个常见的难题。本文将针...
