Lombok注解之@SuperBuilder--解決無法builder父類屬性問題
前言:Lombok的小坑之 @Builder注解不能 build 父類屬性
正文在第三個目錄下,學(xué)習(xí)@SuperBuilder注解的話可以直接根據(jù)目錄跳到正文所在
一.老規(guī)矩
二.判斷是否為相同問題(@Builder注解不能 build 父類屬性)
前提情況判斷
首先是父類和子類的代碼情況這里直接附圖
會出現(xiàn)的基本常見(最常見問題)無法builder父類屬性
我們會看到這里面提示: 無法解析“SonObjectBuilder”中的方法“age”
三.@SuperBuilder注解
1. 概念(需要注意您的Lombok版本)
- @SuperBuilder在 lombok v1.18.2 中作為實(shí)驗(yàn)性功能引入
- @SuperBuildertoBuilder`lombok v1.18.4 添加了對自定義 的功能和有限支持
- @SuperBuilderlombok v1.18.14 擴(kuò)展了定制的可能性
2. 如何解決無法builder父類屬性
官網(wǎng)給出的方法
@SuperBuilder注釋為您的類生成復(fù)雜的構(gòu)建器 API 。與 相比@Builder,@SuperBuilder也適用于超類中的字段。但是,它僅適用于類型。最重要的是,它要求所有超類也有@SuperBuilder注釋。
code這里依舊使用圖片來做對比展示
結(jié)果
不再提示: 無法解析“SonObjectBuilder”中的方法“age”解決問題!!!
3. 遇到的一個小坑(Lombok1.18.2)
- 這里只是簡單的處理了Builder注解沒有辦法builder屬性的問題
- 如果父子類都是您新建的那么問題不是很大
- 但是有一種可能就是父類已經(jīng)存在很久了,所以請檢查一下原本的父類在被@Builder修飾的時候有沒有在某一個參數(shù)上使用了@Builder.Default
前提條件依舊圖片展示
首先展示的是父子類
其次是builder代碼如下
我們可以發(fā)現(xiàn)emmmmmm,貌似idea并沒有提示什么,但是當(dāng)我們進(jìn)行編譯的時候就會發(fā)現(xiàn)(!!!)
我們找到是對應(yīng)的第14行代碼
處理方法刪除子類的無參構(gòu)造注解和父類的無參全參兩個注解如下圖
再次運(yùn)行問題解決!!!(全體起立!)
對于1.18.10以上的版本此問題已經(jīng)被解決, 即@Builder.Default可以與@SuperBuilder在無參和全參構(gòu)造注解的情況下使用
至于1.8.2至1.8.10之間版本本人沒有具體測試過,所以需要看情況進(jìn)行使用
四.總結(jié)
對于lombok的@SuperBuilder----->>>注意版本注意版本還是注意版本!!!
其他功能這里暫時不做贅述,可以自己根據(jù)官網(wǎng)文檔進(jìn)行嘗試,(以后可能更新)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析
這篇文章主要為大家介紹了Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08java JDBC系列教程之JDBC類的簡析與JDBC的基礎(chǔ)操作
這篇文章主要介紹了java JDBC系列教程之JDBC類的簡析與JDBC的基礎(chǔ)操作,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Spring Security Remember me使用及原理詳解
這篇文章主要介紹了Spring Security Remember me使用及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下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-10Java導(dǎo)出Excel統(tǒng)計(jì)報(bào)表合并單元格的方法詳解
我們在日常編程過程中,總是會碰見導(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ù)時的注意事項(xiàng)
這篇文章主要介紹了Spring Boot使用JpaRepository刪除數(shù)據(jù)時的注意事項(xiàng),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06