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

 更新时间:2022年09月21日 10:39:04   作者:社畜阿藏405  
这篇文章主要介绍了Lombok注解之@SuperBuilder--解决无法builder父类属性问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

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

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

一.老规矩

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

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

前提情况判断

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

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

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

三.@SuperBuilder注解

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

  • @SuperBuilder在 lombok v1.18.2 中作为实验性功能引入
  • @SuperBuildertoBuilder`lombok v1.18.4 添加了对自定义 的功能和有限支持
  • @SuperBuilderlombok v1.18.14 扩展了定制的可能性

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

官网给出的方法

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

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

结果

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

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----->>>注意版本注意版本还是注意版本!!!

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

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

相关文章

  • java jvm的知识详细介绍

    java jvm的知识详细介绍

    这篇文章主要介绍了java jvm的知识详细介绍的相关资料,这里对java jvm中的堆内存和栈内存等基础知识做了详细介绍,需要的朋友可以参考下
    2016-11-11
  • java将一个目录下的所有数据复制到另一个目录下

    java将一个目录下的所有数据复制到另一个目录下

    这篇文章主要为大家详细介绍了java将一个目录下的所有数据复制到另一个目录下,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • 详解Java网络编程

    详解Java网络编程

    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。本文介绍了一些网络编程基础的概念,并用Java来实现TCP和UDP的Socket的编程,来让读者更好的了解其原理
    2021-06-06
  • javaWeb使用servlet搭建服务器入门

    javaWeb使用servlet搭建服务器入门

    这篇文章主要为大家详细介绍了javaWeb使用servlet搭建服务器入门,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • SpringBoot+OCR 实现图片文字识别

    SpringBoot+OCR 实现图片文字识别

    本文主要介绍了SpringBoot+OCR 实现图片文字识别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java对xls文件进行读写操作示例代码

    Java对xls文件进行读写操作示例代码

    Java开发项目中经常会碰到处理Excel文件中数据的情况,下面这篇文章主要给大家介绍了利用Java对xls文件进行读写操作的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • 一文带你了解Java中的ForkJoin

    一文带你了解Java中的ForkJoin

    这篇文章主要介绍了一文带你了解Java中的ForkJoin,ForkJoinTask本身的依赖关系并不复杂,它与异步任务计算FutureTask一样均实现了Future接口,下文更多相关资料,需要的小伙伴可以参考一下
    2022-04-04
  • Java实现在正则表达式中控制大小写的方法

    Java实现在正则表达式中控制大小写的方法

    这篇文章主要介绍了Java实现在正则表达式中控制大小写的方法,结合实例形式分析了java正则表达式中传递控制参数的功能与相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • Maven打包所有依赖到一个可执行jar中遇到的问题

    Maven打包所有依赖到一个可执行jar中遇到的问题

    这篇文章主要给大家介绍了关于Maven打包所有依赖到一个可执行jar中遇到的问题,将依赖打入jar包,由于maven管理了所有的依赖,所以将项目的代码和依赖打成一个包对它来说是顺理成章的功能,需要的朋友可以参考下
    2023-10-10
  • 利用Java实现动态加载数据库

    利用Java实现动态加载数据库

    这篇文章主要为大家详细介绍了一个java小案例,即动态加载数据库信息,文中的示例代码简洁易懂,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-10-10

最新评论