首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java重写equals及hashcode方法

java重写equals及hashcode方法

作者头像
code4it
发布2018-09-17 15:09:16
发布2018-09-17 15:09:16
90000
代码可运行
举报
文章被收录于专栏:码匠的流水账码匠的流水账
运行总次数:0
代码可运行

本文介绍一下几种重写equals和hashcode的方法。

规则

  1. 如果两个对象相等的话,它们的hash code必须相等;
  2. 但如果两个对象的hash code相等的话,这两个对象不一定相等。

方法

使用lombok的注解

lombok-1.16.16.jar!/lombok/EqualsAndHashCode.class 比如

代码语言:javascript
代码运行次数:0
运行
复制
@ToString
@EqualsAndHashCode
public class XXXDto {

}

使用apache的方法

代码语言:javascript
代码运行次数:0
运行
复制
    @Override
    public boolean equals(Object o) {
        return EqualsBuilder.reflectionEquals(this,o);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

如果仅仅是根据所有字段来生成,则可以使用reflection方法

Objects方法

java自带的Objects有个hashcode方法来根据字段生成

代码语言:javascript
代码运行次数:0
运行
复制
Objects.hash(mobile,name);
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-09-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码匠的流水账 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 规则
  • 方法
    • 使用lombok的注解
    • 使用apache的方法
    • Objects方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档