lombok的@EqualsAndHashcode注解詳解
有時候我們在實體類上面會使用@Data注解,這個注解帶了@EqualsAndHashcode注解。
一、用法

- ①of 用來指明你要用什么字段來重寫equals和hashcode(具體怎么重寫看下文)
- ②callSuper 這個選項只能用在有父類情況下,如上圖如果沒有Father那么會報錯。默認是false,當(dāng)改成true后,會調(diào)用父類的equals方法(具體看下文例子)
那么上文中這樣設(shè)置,new了2個child,不管是equals還是hashcode那么他們都是一樣的
二、lombok是怎么重寫equals和hashcode方法
equals:
- 父類:

- 子類:

hashcode:
- 父類:

- 子類:

總結(jié)
1、使用了@EqualsAndHashcode注解,那么他們都將重寫equals和hashcode方法,而這兩個方法都是根據(jù)你of指定的屬性(默認全部)而生成的。
2、繼承時候父類通常也要加上該屬性,否則equals為false,hashcode會不一樣
3、使用集合類時候也要小心一點,例如hashmap,會造成2個對象但是會覆蓋(雖然我們業(yè)務(wù)邏輯上認為他們相等)。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot基礎(chǔ)教程之集成郵件服務(wù)
這篇文章主要給大家介紹了關(guān)于SpringBoot基礎(chǔ)教程之集成郵件服務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者使用SpringBoot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
springboot啟動bat/bash腳本實現(xiàn)過程
請?zhí)峁┚唧w錯誤信息或腳本內(nèi)容,以便分析Spring Boot項目中Controller、Entity、Service層的依賴問題,跨平臺腳本需注意路徑兼容性和環(huán)境變量配置,確保依賴項正確引入2025-08-08
Java Thread之Sleep()使用方法總結(jié)
這篇文章主要介紹了Java Thread之Sleep()使用方法總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
舉例講解Java編程中this關(guān)鍵字與super關(guān)鍵字的用法
這篇文章主要介紹了Java編程中this關(guān)鍵字與super關(guān)鍵字的用法示例,super是this的父輩,在繼承過程中兩個關(guān)鍵字經(jīng)常被用到,需要的朋友可以參考下2016-03-03

