Lombok - Generating equals/hashCode implementation but without a call to superclass

1、Lombok 警告,沒有注入父類的字段

當我們給一個繼承了父類的子類上使用@Data @ToString @EqualsAndHashCode 註解時,IDE 會警告

Generating equals/hashCode implementation but without a call to superclass

意思是,該註解在實現 ToString EqualsAndHashCode 方法時,不會考慮父類的屬性,通過反編譯的源碼也是可以看到他是沒有對父類的字段進行比較的。

 

2、解決方式一:直接在子類上聲明 @EqualsAndHashCode(callSuper = true)

 

3、解決方式二(推薦):在項目的src/main/java根目錄下創建lombok配置文件

請注意,該方式有版本要求,最低爲lombok 1.14

如果是IDEA ,創建該配置文件會被IDEA 以一個黃色的小配置圖標進行顯示

配置文件的配置內容如下

config.stopBubbling=true
lombok.equalsAndHashCode.callSuper=call

(1)config.stopBubbling=true

該配置聲明這個配置文件是一個根配置文件,他會從該配置文件所在的目錄開始掃描

(2)lombok.equalsAndHashCode.callSuper=call

全局配置 equalsAndHashCode 的 callSuper 屬性爲true,這樣就不用每個類都要去寫了

(3)lombok 配置的分層

lombok 配置文件支持分層,在根目錄配置的的配置文件對全局生效,如果某個子包中也有配置文件,則子包的類優先以子包中的配置爲準

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章