我刚刚开始使用谷歌的番石榴收藏(
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返回.它有两个额外的方法调用(起始和结果),并且对于noob来说更复杂.
比较链中有没有明显的好处?
(是的,我也用适当的Objects.hashcode()覆盖哈希码
解决方法
ComparisonChain允许您通过比较多个属性来检查对象是否小于或大于另一个对象(如通过多个列排序网格).
在实现Comparable或Comparator时应该使用它.
在实现Comparable或Comparator时应该使用它.
Objects.equal只能检查相等.