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