Lombok注解之@SuperBuilder--解決無法builder父類屬性問題
前言:Lombok的小坑之 @Builder注解不能 build 父類屬性
正文在第三個(gè)目錄下,學(xué)習(xí)@SuperBuilder注解的話可以直接根據(jù)目錄跳到正文所在
一.老規(guī)矩
二.判斷是否為相同問題(@Builder注解不能 build 父類屬性)
前提情況判斷
首先是父類和子類的代碼情況這里直接附圖

會(huì)出現(xiàn)的基本常見(最常見問題)無法builder父類屬性

我們會(huì)看到這里面提示: 無法解析“SonObjectBuilder”中的方法“age”
三.@SuperBuilder注解
1. 概念(需要注意您的Lombok版本)
- @SuperBuilder在 lombok v1.18.2 中作為實(shí)驗(yàn)性功能引入
- @SuperBuildertoBuilder`lombok v1.18.4 添加了對(duì)自定義 的功能和有限支持
- @SuperBuilderlombok v1.18.14 擴(kuò)展了定制的可能性
2. 如何解決無法builder父類屬性
官網(wǎng)給出的方法
@SuperBuilder注釋為您的類生成復(fù)雜的構(gòu)建器 API 。與 相比@Builder,@SuperBuilder也適用于超類中的字段。但是,它僅適用于類型。最重要的是,它要求所有超類也有@SuperBuilder注釋。
code這里依舊使用圖片來做對(duì)比展示

結(jié)果

不再提示: 無法解析“SonObjectBuilder”中的方法“age”解決問題!!!
3. 遇到的一個(gè)小坑(Lombok1.18.2)
- 這里只是簡單的處理了Builder注解沒有辦法builder屬性的問題
- 如果父子類都是您新建的那么問題不是很大
- 但是有一種可能就是父類已經(jīng)存在很久了,所以請(qǐng)檢查一下原本的父類在被@Builder修飾的時(shí)候有沒有在某一個(gè)參數(shù)上使用了@Builder.Default
前提條件依舊圖片展示

首先展示的是父子類
其次是builder代碼如下

我們可以發(fā)現(xiàn)emmmmmm,貌似idea并沒有提示什么,但是當(dāng)我們進(jìn)行編譯的時(shí)候就會(huì)發(fā)現(xiàn)(!!!)

我們找到是對(duì)應(yīng)的第14行代碼

處理方法刪除子類的無參構(gòu)造注解和父類的無參全參兩個(gè)注解如下圖

再次運(yùn)行問題解決!!!(全體起立!)

對(duì)于1.18.10以上的版本此問題已經(jīng)被解決, 即@Builder.Default可以與@SuperBuilder在無參和全參構(gòu)造注解的情況下使用
至于1.8.2至1.8.10之間版本本人沒有具體測試過,所以需要看情況進(jìn)行使用
四.總結(jié)
對(duì)于lombok的@SuperBuilder----->>>注意版本注意版本還是注意版本!!!
其他功能這里暫時(shí)不做贅述,可以自己根據(jù)官網(wǎng)文檔進(jìn)行嘗試,(以后可能更新)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java將一個(gè)目錄下的所有數(shù)據(jù)復(fù)制到另一個(gè)目錄下
這篇文章主要為大家詳細(xì)介紹了java將一個(gè)目錄下的所有數(shù)據(jù)復(fù)制到另一個(gè)目錄下,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
SpringBoot+OCR?實(shí)現(xiàn)圖片文字識(shí)別
本文主要介紹了SpringBoot+OCR 實(shí)現(xiàn)圖片文字識(shí)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java對(duì)xls文件進(jìn)行讀寫操作示例代碼
Java開發(fā)項(xiàng)目中經(jīng)常會(huì)碰到處理Excel文件中數(shù)據(jù)的情況,下面這篇文章主要給大家介紹了利用Java對(duì)xls文件進(jìn)行讀寫操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-08-08
Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法
這篇文章主要介紹了Java實(shí)現(xiàn)在正則表達(dá)式中控制大小寫的方法,結(jié)合實(shí)例形式分析了java正則表達(dá)式中傳遞控制參數(shù)的功能與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
Maven打包所有依賴到一個(gè)可執(zhí)行jar中遇到的問題
這篇文章主要給大家介紹了關(guān)于Maven打包所有依賴到一個(gè)可執(zhí)行jar中遇到的問題,將依賴打入jar包,由于maven管理了所有的依賴,所以將項(xiàng)目的代碼和依賴打成一個(gè)包對(duì)它來說是順理成章的功能,需要的朋友可以參考下2023-10-10
利用Java實(shí)現(xiàn)動(dòng)態(tài)加載數(shù)據(jù)庫
這篇文章主要為大家詳細(xì)介紹了一個(gè)java小案例,即動(dòng)態(tài)加載數(shù)據(jù)庫信息,文中的示例代碼簡潔易懂,具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2023-10-10

