IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Lombok注解之@SuperBuilder--解决无法builder父类属性 -> 正文阅读

[Java知识库]Lombok注解之@SuperBuilder--解决无法builder父类属性

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知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-20 22:54:28  更:2022-06-20 22:56:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:38:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码