gpt4 book ai didi

java - Java是否提供了带有两个参数的equals方法

转载 作者:行者123 更新时间:2023-12-03 03:46:31 25 4
gpt4 key购买 nike

在每个 equals 方法中,我需要为每个(相关)属性编写一个这样的 block :

@Override
public boolean equals(Object obj) {
...
if (member1 == null) {
if (other.member1 != null) {
return false;
}
} else if (!member1.equals(other.member1)) {
return false;
}
...
return true;
}

这每次都是一样的,没有任何好处,只是为了避免 NullPointerExceptions。

直接打电话不是更好

boolean doesIt = SomeClass.equals( member1, other.member1);

此方法将检查两者是否都为 null,如果不是,则调用 member1 上的默认 equals。

这意味着我的 equals 方法最终可能看起来像这样

@Override
public boolean equals(Object obj) {
return obj != null
&& getClass() == obj.getClass()
&& SomeClass.equals(member1, (((XX) other).member1)
&& SomeClass.equals(member2, (((XX) other).member2)
&& SomeClass.equals(member3, (((XX) other).member3)
&& SomeClass.equals(member4, (((XX) other).member4);
}

在我看来更加清晰且不易出错。

当然,我自己编写这个类/方法绝对没有问题,但我想知道是否可能已经有一个提供 equals(Object, Object) 的类。

最佳答案

看看Objects.equals(Object a, Object b) .

看起来正是您想要的,并且它还处理 null 值。在 Java 7.0 中引入。

关于java - Java是否提供了带有两个参数的equals方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com