为什么需要在bean上使用@EqualsAndHashCode(callSuper = true)这个注解

我们还是写一个案例,来探讨它的作用。

写三个类,一个是子类Child.class,一个是父类Person.class,一个是测试类Test.class

Person父类很简单,就一个属性code;

Child子类也很简单,继承了父类之后,自己也是定义了一个属性name;

Test类:

创建了两个Child,属性code是不一样的,一个是c1,一个是c2,但是name是相同的,都是“小毛孩”,然后我们现在也没有在子类Child类上加注解@EqualsAndHashCode(callSuper = true),我们看看运行结果是如何,通过运行结果来分析。

运行结果:

第一个== 是false,我相信大家都懂,因为new了两个对象,就会在堆中创建出两个地址不同的对象;

第二个equlas是true,我相信大家是有点疑问的,equals比较的是两个对象的内容值,但是现在这两个对象的内容

一个child1的code是c1,name是“小毛孩”;

一个child2的code是c2,name是“小毛孩”;

那么他们的内容值是不同的,为什么最终结果还是true呢?

原因可能就是和注解EqualsAndHashCode(callSuper = true)有关吗,我们先不着急下结论,我们现在先在子类Child的类上加上这个注解试试。

看到没有,@Data注解下面也不会有提示曲线了。

我们再次点击运行。看看运行结果。

运行结果:

结果变了,都是false了。所以原因就是这个注解搞的鬼。

注解EqualsAndHashCode(callSuper = true)的作用就是,如果你没在子类的类上加上的话,那么它是会忽略父类继承过来的属性的,只会关注子类自身的属性。所以一开始两个child虽然他们的code是不同的,name是相同的,但是由于没加上这个注解,忽略了父类的code,只会关注子类Child的name,就会就是true了。

总结:

@EqualsAndHashCode(callSuper = true)的作用就是不会忽略父类的属性,也会对父类的属性进行比较。

最后:

如果大家觉得这篇文章对你们有所帮助的话,麻烦点个免费的赞赞,也祝各位码农在未来的IT道路上越走越远,谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/595736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机组成原理-总线标准(系统总线 局部总线 设备总线)

文章目录 总览例子总线标准的基本概念系统总线标准局部总线标准设备总线标准对比小结为何串行总线取代并行总线 总览 例子 总线标准的基本概念 北桥芯片速度大于南桥芯片 系统总线标准 ISA和EISA都是并行总线 Intel提出了FBS总线标准比EISA和ISA快,后来又提出来…

LeetCode(31) 下一个排列

整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&#xf…

数据结构期末复习(1)数据结构和算法 线性表

数据结构期末总复习(gaois课堂版) 数据结构的概念 数据结构是计算机科学中的一个重要概念,它指的是组织和存储数据的方式。数据结构可以帮助我们高效地操作和管理数据,使得计算机程序能够更加有效地执行各种任务。 数据结构有很…

防火墙未开端口导致zookeeper集群异常,kafka起不来

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 问题描述: 主机信息: IPhostname10.0.0.10host1010.0.0.12host1210.0.0.13host13 在这三台主机上部署…

山西电力市场日前价格预测【2024-01-05】

日前价格预测 预测说明: 如上图所示,预测明日(2024-01-05)山西电力市场全天平均日前电价为259.10元/MWh。其中,最高日前电价为363.99元/MWh,预计出现在18:00。最低日前电价为0.00元/MWh,预计出…

Linux第1步_VMware软件安装

1、双击“VMware-workstation-full-15.5.0-14665864”,得到下面的界面: 2、等待几分钟,得到下面的界面: 3、点击“下一步” 4、勾选“我接受许可协议中的条款(A)”,见下图: 5、点击“下一步”,得…

使用通用MCU实现无人机飞行任务的快速二次开发

使用通用MCU实现无人机飞行任务的快速二次开发 ---TIDronePilot外部控制offboard模式介绍 无名小哥 2024年1月1日 传统飞控二次开发方法和主要存在的问题简介 通过对前面几讲中《零基础竞赛无人机积木式编程指南》系列开发教程的学习可知,在以往TI电赛真题的学习…

RK3568驱动指南|第九篇 设备模型-第101章 总线注册流程理论分析实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

力扣hot100 二叉树展开为链表 递归 特殊遍历

👨‍🏫 题目地址 👩‍🏫 参考题解 😋 将左子树插入到右子树上 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* …

C/C++动态内存分配 malloc、new、vector(简单讲述)

路虽远,行则将至 事虽难,做则必成 今天来主要讲C中动态内存分配 其中会穿插一些C的内容以及两者的比较 如果对C语言中的动态内存分配还不够理解的同学 可以看看我之前的博客:C语言动态分配 在讲解C的动态内存分配之前 我们先讲一下C内存模型 &#xff1…

CSS免费在线字体格式转换器 CSS @font-face 生成器

今天竟意外发现的一款免费的“网页字体生成器”,功能强大又好用~ 工具地址:https://transfonter.org/ 根据你设置生成后的文件预览: 支持TTF、OTF、WOFF、WOFF2 或 SVG字体格式转换生成,每个文件最大15MB。转换完成以后还会生成一…

宏集PC Runtime软件助推食品行业生产线数字化革新

一、前言 近年来,中国食品行业发展迅速且灵活多变,在当前经济下行的情形下,食品行业正面临着日益激烈的竞争,导致企业利润下降。 为了保持企业市场竞争力,国内某top10食品企业采用宏集SCADA解决方案—PC Runtime软件…

数学公式编译器MathType下载与安装

下载网址:下载 MathType - WIRIS Store 1.点击【下载MathType for Windows】 2、点击中文版 3.找到所下载的目录: 右击-->以管理员身份运行 4、新建word文档 点击文件->账户->关于word 5.点击【文件】、【选项】,❶点击【加载项】…

有趣的数学 为什么素数在密码学中很重要?

这里我们将探讨为什么素数在密码学中很重要。我们将根据特定的密码系统( RSA 算法)来进行深入了解。 一、素数的特殊性 每个数字都可以分解为它的素数。一般来说,找到一个数的因数是非常困难的。要找到一个自然数的所有素因数,必…

Zookeeper 分布式服务协调治理框架介绍入门

文章目录 为甚么需要Zookeeper一、Zookeeper 介绍1.1 介绍1.2 Zookeeper中的一些概念1.2.1 集群角色1.2.2 会话 session1.2.3 数据节点 Znode1.2.4 版本1.2.5 事件监听器 Watcher1.2.6 ACL 权限控制表(Access Control Lists) 二、 Zookeeper的系统模型2.1.1 ZNode节点2.1.2 ZNo…

基于ssm的班级事务管理系统+vue论文

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对班级事务信息管理的提升&#x…

【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

STM32 基础知识(探索者开发板)--135讲 ADC转换

ADC定义: ADC即模拟数字转换器,英文详称 Analog-to-digital converter,可以将外部的模拟信号转换 ADC数模转换中一些常用函数: 1. HAL_ADC_Init 函数 HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc); 初始化ADC 形参&…

后端主流框架-SpringMvc-day2

Java中的文件下载 2 文件下载 文件下载:就是将服务器(表现在浏览器中)中的资源下载(复制)到本地磁盘; 2.1 前台代码 前台使用超链接,超链接转到后台控制器,在控制器通过流的方式…

AI:111-基于深度学习的工业设备状态监测

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…