java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @SuperBuilder解决无法builder父类属性

Lombok注解之@SuperBuilder--解决无法builder父类属性问题

作者:社畜阿藏405

这篇文章主要介绍了Lombok注解之@SuperBuilder--解决无法builder父类属性问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

前言:Lombok的小坑之 @Builder注解不能 build 父类属性

正文在第三个目录下,学习@SuperBuilder注解的话可以直接根据目录跳到正文所在

一.老规矩

先上文档官方文档链接@SuperBuilder

二.判断是否为相同问题(@Builder注解不能 build 父类属性)

前提情况判断

首先是父类和子类的代码情况这里直接附图

会出现的基本常见(最常见问题)无法builder父类属性

我们会看到这里面提示: 无法解析“SonObjectBuilder”中的方法“age”

三.@SuperBuilder注解

1. 概念(需要注意您的Lombok版本)

2. 如何解决无法builder父类属性

官网给出的方法

@SuperBuilder注释为您的类生成复杂的构建器 API 。与 相比@Builder,@SuperBuilder也适用于超类中的字段。但是,它仅适用于类型。最重要的是,它要求所有超类也有@SuperBuilder注释。

code这里依旧使用图片来做对比展示

结果

不再提示: 无法解析“SonObjectBuilder”中的方法“age”解决问题!!!

3. 遇到的一个小坑(Lombok1.18.2)

前提条件依旧图片展示

首先展示的是父子类

其次是builder代码如下

我们可以发现emmmmmm,貌似idea并没有提示什么,但是当我们进行编译的时候就会发现(!!!)

我们找到是对应的第14行代码

处理方法删除子类的无参构造注解和父类的无参全参两个注解如下图

再次运行问题解决!!!(全体起立!)

对于1.18.10以上的版本此问题已经被解决, 即@Builder.Default可以与@SuperBuilder在无参和全参构造注解的情况下使用

至于1.8.2至1.8.10之间版本本人没有具体测试过,所以需要看情况进行使用

四.总结

对于lombok的@SuperBuilder----->>>注意版本注意版本还是注意版本!!!

其他功能这里暂时不做赘述,可以自己根据官网文档进行尝试,(以后可能更新)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文