在 Objects.equal() && Objects.equal() 上使用 ComparisonChain 有什么好处?与番石榴
2022-09-05 00:24:35
我刚刚开始使用谷歌的番石榴收藏(ComparisonChain and Objects)。在我的pojo中,我过度使用了equals方法,所以我首先这样做了:
return ComparisonChain.start()
.compare(this.id, other.id)
.result() == 0;
但是,我随后意识到我也可以使用这个:
return Objects.equal(this.id, other.id);
而且我看不出什么时候比较链会更好,因为你可以很容易地添加更多的条件,如下所示:
return Objects.equal(this.name, other.name)
&& Objects.equal(this.number, other.number);
我能看到的唯一好处是,如果你特别需要一个int返回。它有两个额外的方法调用(start和result),对于新手来说更复杂。
我缺少的比较链有明显的好处吗?
(是的,我也用适当的代码覆盖哈希码Objects.hashcode()
)