当前位置: 代码网 > it编程>编程语言>Java > Springboot 注解EqualsAndHashCode详解

Springboot 注解EqualsAndHashCode详解

2024年10月17日 Java 我要评论
先看问题,如图所示注解解释@equalsandhashcode 作用与子类上callsuper = true,根据子类自身的字段值和从父类继承的字段值来生成hashcode,当两个子类对象比较时,只有

先看问题,如图所示

注解解释

@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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com