加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用ComparisonChain对Object.equal()\u0026&#9

发布时间:2020-12-14 16:38:36 所属栏目:Java 来源:网络整理
导读:我刚刚开始使用谷歌的番石榴收藏( ComparisonChain和 Objects).在我的pojo中,我正在等待equals方法,所以我先做了这个: return ComparisonChain.start() .compare(this.id,other.id) .result() == 0; 但是,我也意识到我也可以用这个: return Objects.equal(
我刚刚开始使用谷歌的番石榴收藏( 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时应该使用它.

Objects.equal只能检查相等.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读