JAVA重写euals
时间: 2023-12-24 11:03:50 浏览: 23
在 Java 中,如果你需要比较两个对象的内容是否相等,需要重写 `equals` 方法。下面是一个重写 `equals` 方法的示例:
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public boolean equals(Object obj) {
if (obj == this) return true;
if (!(obj instanceof Person)) return false;
Person person = (Person) obj;
return this.name.equals(person.name) && this.age == person.age;
}
}
```
在上面的示例中,我们首先判断 `obj` 是否为当前对象,如果是则返回 `true`,因为一个对象肯定等于它自己。然后我们判断 `obj` 是否为 `Person` 类型的对象,如果不是则返回 `false`。最后我们将 `obj` 转换成 `Person` 对象,并比较 `name` 和 `age` 是否相等,如果都相等则返回 `true`,否则返回 `false`。
需要注意的是,当你重写 `equals` 方法时,通常也需要重写 `hashCode` 方法,因为 `hashCode` 方法的默认实现是根据对象的内存地址生成的,如果你重写了 `equals` 方法而没有重写 `hashCode` 方法,可能会导致哈希表无法正常工作。