如何在Java equals()方法中忽略自定义对象中的1个字段?

bluesky1年前 ⋅ 177 阅读

ChatGPT的回答仅作参考:

要在Java equals()方法中忽略自定义对象中的1个字段,可以在equals()方法中比较除该字段外的所有其他字段。例如,假设有一个Person类,其中包含name和age字段,我们想要在比较两个Person对象时忽略age字段,可以这样实现equals()方法:

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

    // 构造函数、getter和setter方法省略

    @Override
    public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof Person)) {
            return false;
        }
        Person other = (Person) obj;
        return Objects.equals(name, other.name);
    }
}
```

在这个equals()方法中,我们首先检查传入的对象是否是当前对象本身,如果是,则返回true。然后我们检查传入的对象是否是Person类的实例,如果不是,则返回false。最后,我们将传入的对象转换为Person类型,并比较name字段是否相等,而忽略age字段。我们使用Objects.equals()方法来比较name字段,这个方法可以处理null值的情况。

全部评论: 0

    相关推荐