我刚刚开始使用 google 的 Guava 集合(ComparisonChain和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,我可以看到的唯一好处。它有两个额外的方法调用(开始和结果),对于菜鸟来说更复杂。
我缺少的比较链有明显的好处吗?
(是的,我也用适当的覆盖哈希码Objects.hashcode()
)