Springboot 注解EqualsAndHashCode详解

 更新时间:2024年10月17日 09:34:52   作者:pqdl4312  
注解@EqualsAndHashCode主要用于自动生成equals方法和hashCode方法,callSuper属性为true时,生成的方法会包括父类字段,为false则只包含当前类字段,IDEA工具中有检查提示并可自动修复相关代码,确保注解正确使用,更多详解可查阅相关文档

先看问题,如图所示

注解解释

@EqualsAndHashCode 作用与子类上

  • callSuper = true,根据子类自身的字段值和从父类继承的字段值来生成hashcode,当两个子类对象比较时,只有子类对象的本身的字段值和继承父类的字段值都相同,equals方法的返回值是true。

  • callSuper = false,根据子类自身的字段值来生成hashcode, 当两个子类对象比较时,只有子类对象的本身的字段值相同,父类字段值可以不同,equals方法的返回值是true。

IDEA检查提示并快速修复

正在生成 equals/hashCode 实现,但即使此类未扩展 java.lang.Object,也不调用超类。如果这是有意为之,请在您的类型中添加 ‘(callSuper=false)’。
检查信息: 提供 Lombok 注解的一般检查。

点击后,快速修复添加注解

测试代码

package com.st;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.junit.Test;
/**
 * @author st
 * @date 2024/1/9 15:36
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
class Animal {
    private String name;
}
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
class Cat extends Animal {
    private String age;
    public Cat(String name, String age) {
        super(name);
        this.age = age;
    }
}
public class TestAnnotation {
    @Test
    public void testCat() {
        Cat cat1 = new Cat("1", "1");
        Cat cat2 = new Cat("2", "1");
        System.out.println(cat1.equals(cat2));
    }
}

到此这篇关于Springboot 注解EqualsAndHashCode的文章就介绍到这了,更多相关Springboot 注解EqualsAndHashCode内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 全网最全最细的jmeter接口测试教程以及接口测试流程(入门教程)

    全网最全最细的jmeter接口测试教程以及接口测试流程(入门教程)

    本文主要介绍了全网最全最细的jmeter接口测试教程以及接口测试流程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Spring如何更简单的读取和存储对象

    Spring如何更简单的读取和存储对象

    这篇文章主要给大家介绍了关于Spring如何更简单的读取和存储对象的相关资料,在Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 一文快速了解spring boot中的@idempotent注解

    一文快速了解spring boot中的@idempotent注解

    idempotence注解是RESTful API设计中一个重要的概念,它可以保证操作的可靠性和一致性,下面这篇文章主要给大家介绍了关于spring boot中@idempotent注解的相关资料,需要的朋友可以参考下
    2024-01-01
  • java二叉树的遍历方式详解

    java二叉树的遍历方式详解

    这篇文章主要为大家详细介绍了java实现二叉树遍历的四种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08
  • Java微信扫码登录功能并实现认证授权全过程

    Java微信扫码登录功能并实现认证授权全过程

    这篇文章主要给大家介绍了关于Java微信扫码登录功能并实现认证授权的相关资料,要在Java中实现微信扫码登录,您可以按照以下步骤进行操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • SpringBoot中进行事务回滚的方法

    SpringBoot中进行事务回滚的方法

    在Spring Boot中,可以使用TransactionTemplate或@Transactional注解来进行事务管理,本文主要介绍了SpringBoot中进行事务回滚的方法,感兴趣的可以了解一下
    2023-11-11
  • Java DelayQueue实现任务延时示例讲解

    Java DelayQueue实现任务延时示例讲解

    DelayQueue是一个无界的BlockingQueue的实现类,用于放置实现了Delayed接口的对象,其中的对象只能在其到期时才能从队列中取走。本文就来利用DelayQueue实现延时任务,感兴趣的可以了解一下
    2022-09-09
  • logback使用MDCFilter日志过滤源码解读

    logback使用MDCFilter日志过滤源码解读

    这篇文章主要介绍了logback使用MDCFilter日志过滤源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式

    Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式

    这篇文章主要介绍了Java解析zip文件,并识别压缩包里面的文件转换成可操作的IO流方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • springboot验证码的生成与验证的两种方法

    springboot验证码的生成与验证的两种方法

    本文主要介绍了springboot验证码的生成与验证的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06

最新评论