覆盖equals方法以比较Java中的多个字段

在Java中重写equals方法以比较多个字段的最佳方法是什么?例如,我在类中有4个对象,分别为o1,o2,o3,o4,我想将所有这些对象与传递给equals方法的对象进行比较。

if (o1 != null && o2 != null && o3 != null && o4 != null && obj.o1 != null

&& obj.o2 != null && obj.o3 != null && obj.o4 != null

&& o1.equals(obj.o1) && o2.equals(obj.o2) && o3.equals(obj.o3) && o4.equals(obj.o4)) {

do something

}

这段代码的问题在于它不清楚,如果我们有更多字段,就很难轻易修改。有没有更好的方法来实现这一目标?

回答:

一种便宜的方法是:

Arrays.asList(o1, o2, o3, o4).equals(Arrays.asList(obj.o1, obj.o2, obj.o3, obj.o4));

以上是 覆盖equals方法以比较Java中的多个字段 的全部内容, 来源链接: utcz.com/qa/419551.html

回到顶部