Lombok注解之@SuperBuilder–解决无法builder父类属性
前言: Lombok的小坑之 @Builder注解不能 build 父类属性
正文在第三个目录下,学习@SuperBuilder注解的话可以直接根据目录跳到正文所在
二. 判断是否为相同问题(@Builder注解不能 build 父类属性)
三. @SuperBuilder注解
1. 概念(需要注意您的Lombok版本)
- @SuperBuilder在 lombok v1.18.2 中作为实验性功能引入
- @SuperBuildertoBuilder`lombok v1.18.4 添加了对自定义 的功能和有限支持
- @SuperBuilderlombok v1.18.14 扩展了定制的可能性
2. 如何解决无法builder父类属性
3. 遇到的一个小坑(Lombok1.18.2)
这里只是简单的处理了Builder注解没有办法builder属性的问题
如果父子类都是您新建的那么问题不是很大
但是有一种可能就是父类已经存在很久了,所以请检查一下原本的父类在被@Builder修饰的时候有没有在某一个参数上使用了@Builder.Default
-
前提条件依旧图片展示 首先展示的是父子类 其次是builder代码如下 我们可以发现emmmmmm,貌似idea并没有提示什么,但是当我们进行编译的时候就会发现(!!!) 我们找到是对应的第14行代码 -
处理方法删除子类的无参构造注解和父类的无参全参两个注解如下图 -
再次运行问题解决!!!(全体起立!) 对于1.18.10以上的版本此问题已经被解决, 即@Builder.Default可以与@SuperBuilder在无参和全参构造注解的情况下使用 至于1.8.2至1.8.10之间版本本人没有具体测试过,所以需要看情况进行使用
四. 总结
对于lombok的@SuperBuilder----->>>注意版本注意版本还是注意版本!!!
其他功能这里暂时不做赘述,可以自己根据官网文档进行尝试,(以后可能更新)
|