首页  > 后端开发 > equals在java中的用法, 什么是equals()办法

equals在java中的用法, 什么是equals()办法

后端开发 2024-12-25 4

在Java中,`equals` 办法用于比较两个目标是否持平。它是一个实例办法,存在于 `Object` 类中,而且能够被一切的类承继。`equals` 办法的默许实现是查看两个目标的引证是否相同,即它们是否指向内存中的同一个方位。许多类会重写这个办法来供给更详细的比较逻辑。

下面是一些关于 `equals` 办法的注意事项和用法:

1. 重写 `equals` 办法:假如你要创立一个自界说类,而且期望运用 `equals` 办法来比较目标的内容而不是引证,那么你需求重写 `equals` 办法。在重写时,你应该遵从一些准则,比方坚持 `equals` 办法的一致性、对称性、传递性以及与 `hashCode` 办法的一致性。

2. 比较逻辑:在重写 `equals` 办法时,你需求界说什么是“持平”。一般,这涉及到比较目标的要害特点。例如,假如你有一个 `Person` 类,你或许期望两个 `Person` 目标持平,假如它们的 `name` 和 `age` 特点相同。

3. 运用 `==` 和 `equals` 的差异:`==` 操作符用于比较两个目标的引证是否相同,而 `equals` 办法用于比较目标的内容是否相同。当比较根本数据类型时,`==` 操作符和 `equals` 办法的作用是相同的。

4. `null` 值的处理:在重写 `equals` 办法时,你应该查看 `null` 值,以防止 `NullPointerException`。

5. `hashCode` 办法:当你重写 `equals` 办法时,一般也需求重写 `hashCode` 办法。这是由于 `equals` 和 `hashCode` 办法之间存在约好:假如两个目标依据 `equals` 办法持平,那么它们的 `hashCode` 值也应该相同。

下面是一个简略的比如,展现了如安在一个自界说类中重写 `equals` 办法:

```javapublic class Person { private String name; private int age;

public Person { this.name = name; this.age = age; }

@Override public boolean equals { if { return true; } if != obj.getClassqwe2 { return false; } Person person = obj; return age == person.age


Copyright © 2016-2028零基础教程 Rights Reserved. XML地图