首页 > 其他分享 >注解系列(持续)

注解系列(持续)

时间:2022-10-19 11:13:40浏览次数:46  
标签:callSuper EqualsAndHashCode 系列 持续 private User 注解 true 属性

1、@EqualsAndHashCode(callSuper=false)

  • 如果没有继承,仅对一个类加上@Data,不会有告警提示设置@EqualsAndHashCode(callSuper=false);
  • 但存在继承,会有告警
@Data
public class User extends Base{
    private String userName;
    private String pwd;
}
@Data
public class Base {
    private Integer id;
    private String partment;
}

上述会出现告警;

如果在User类上加上注解@EqualsAndHashCode(callSuper = true)

查看编译后的class,多一个if (!super.equals(o)) 判断

 

比较:

User user1 = new User("lee","123",1,"maths");
User user2 = new User("zhang","456",1,"maths");
sysytem.out.println(user1.equals(user2));     //true

不调用父类的属性,那么子类属性里面的相同的话,那hashcode的值就相同啦

如果@EqualsAndHashCode(callSuper=true),结果为fasle,因为此时,是用自己的属性和从父类继承的属性来生成hashcode

总结:

1.如果比较两个对象时应考虑超类中的成员,请使用@EqualsAndHashCode(callSuper=true),才能正确比较

2.如果只是想在当前类比较字段,可以使用@EqualsAndHashCode(callSuper=false),或者不适用此注解,它是默认选项

3.设置 lombok 全局属性,在src/main/java 目录下创建 lombok.config 文件。【注:一定要在src/main/java 目录下创建才有效】

# 声明该配置文件是一个根配置文件,从该配置文件所在的目录开始扫描
config.stopBubbling=true
# 全局配置 equalsAndHashCode 的 callSuper 属性为true
lombok.equalsAndHashCode.callSuper=call

 

标签:callSuper,EqualsAndHashCode,系列,持续,private,User,注解,true,属性
From: https://www.cnblogs.com/shirleyxueli/p/16805507.html

相关文章

  • GNN 系列(三):GraphSAGE
    【引言】在GCN的博文中我们重点讨论了图神经网络的逐层传播公式是如何推导的,然而,GCN的训练方式需要将邻接矩阵和特征矩阵一起放到内存或者显存里,在大规模图数据上是不可取的......
  • 深入剖析Redis系列: Redis集群模式搭建与原理详解
    前言在Redis3.0之前,使用 哨兵(sentinel)机制来监控各个节点之间的状态。RedisCluster是Redis的 分布式解决方案,在3.0版本正式推出,有效地解决了Redis在 分布式 ......
  • 深入剖析Redis系列:Redis数据结构与全局命令概述
    前言Redis提供了5种数据结构。理解每种数据结构的特点,对于Redis的 开发运维 非常重要,同时掌握Redis的 单线程命令处理 机制,会使 数据结构 和 命令 的选择事......
  • shell学习,持续更新
    head默认返回前10行head-15test.txt返回前15行tail默认返回后10行head和tail经常一起用,返回中间的行head-15test.txt|tail-5返回第11到15行,|是......
  • Selenium+Python系列 - 开发环境搭建
    一、写在前面我从未想过自己会写python系列的自动化文章,有些同学会问,那你现在为什么又开始写了?不止一个人找过我,问我可以写一些Python自动化的文章吗,答案是肯定的。笔......
  • 持续集成3-Jenkins用户权限管理、开启权限全局安全配置、创建角色
    ​  我们可以利用Role-basedAuthorizationStrategy插件来管理jenkins用户权限持续集成环境4-Jenkins凭证管理凭据可以用来存储需要密文保护的数据库密码、Gitlab密码......
  • Python OpenCV4趣味应用系列(一)---伪彩色效果
    工欲善其事,必先利其器!起航之前先把环境搭建好:第一步:安装Python,官网下载,选个python3.x(自己喜欢的版本),同时将Python相关目录添加到环境变量;第二步:安装python-opencv,cmd命令......
  • Python OpenCV4趣味应用系列(三)---内切圆/外接圆
    为了方便讲解,我们先来创建一个多边形做演示第一步:创建图像,并绘制一个六边形。代码和生成图像如下:#Createanimager=100src=np.zeros((4*r,4*r),dtype=np.uint8)#C......
  • Python OpenCV4趣味应用系列(四)---颜色物体实时检测
    今天,我们来实现一个视频实时检测颜色物体的小实例,视频中主要有三个颜色物体,我们只检测红色和绿色的球状物体,如下图所示:第一步需要打开视频(或者摄像头):cap=cv2.VideoCaptur......
  • Spring中@Primary注解
    1.概述讨论Spring的@Primary注解,该注解是框架在3.0版中引入的。其作用与功能,当有多个相同类型的bean时,使用@Primary来赋予bean更高的优先级。2.为什么需要@Primary?在某......