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)
- 這里只是簡(jiǎn)單的處理了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之間版本本人沒有具體測(cè)試過,所以需要看情況進(jìn)行使用
四.總結(jié)
對(duì)于lombok的@SuperBuilder----->>>注意版本注意版本還是注意版本!!!
其他功能這里暫時(shí)不做贅述,可以自己根據(jù)官網(wǎng)文檔進(jìn)行嘗試,(以后可能更新)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析
這篇文章主要為大家介紹了Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08java JDBC系列教程之JDBC類的簡(jiǎn)析與JDBC的基礎(chǔ)操作
這篇文章主要介紹了java JDBC系列教程之JDBC類的簡(jiǎn)析與JDBC的基礎(chǔ)操作,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Spring中Bean對(duì)象的定義、注冊(cè)和獲取流程分析
這篇文章主要介紹了Spring中Bean對(duì)象的定義、注冊(cè)和獲取流程分析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Spring Security Remember me使用及原理詳解
這篇文章主要介紹了Spring Security Remember me使用及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09詳細(xì)介紹Java后端API接口開發(fā)規(guī)范
在Java后端開發(fā)中,API接口的設(shè)計(jì)與開發(fā)至關(guān)重要,本文詳細(xì)介紹了命名規(guī)范、接收參數(shù)規(guī)范、參數(shù)檢驗(yàn)、接收方式規(guī)范、異常類處理、統(tǒng)一返回格式以及冪等性等方面的開發(fā)規(guī)范,提供了實(shí)際代碼示例,需要的朋友可以參考下2024-10-10Maven Plugins報(bào)錯(cuò)的解決方法
本文主要介紹了Maven Plugins報(bào)錯(cuò)的解決方法,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-02-02Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的方法詳解
我們?cè)谌粘>幊踢^程中,總是會(huì)碰見導(dǎo)出相關(guān)表格信息的需求,所以就讓我們一起來學(xué)習(xí)一下,這篇文章主要給大家介紹了關(guān)于Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的相關(guān)資料,需要的朋友可以參考下2021-10-10基于Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng)
這篇文章主要介紹了Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06