JAVA:@Builder注解深层特性(笔记)

2023-11-14

JAVA:记录@Builder的特性

@Builder原理:

  • 在构造方法A上引用时,相当于建造一个构造器G,构造器G只可以构造A方法参数列表里的字段
  • 在类上引用时,相当于给这个类一个全参构造方法,然后给这个全参构造方法加上@Builder注解

@Builder与继承:

  • 子类正常,父类引用@Builder注解,会产生一个全参构造器。子类可以使用父类的构造器(只能构造父类的属性)
  • 父类正常,子类引用@Builder注解,会产生一个构造器,但是该构造器只能构造子类的属性

@Builder与lombok其他注解的联动:

  • @Data 方法有无参构造函数,没有全参构造函数
  • @Data + @NoArgsConstructor 与单用@Data效果相同
  • @Data + @AllArgsConstructor 有全参构造函数,没有无参构造函数
  • @Data+@Builder 连用 方法有有参构造函数,没有无参构造函数,相当于@Data+@AllArgsConstructor+构造器
    小坑:
    想要在有@Data+@Builder情况下使用无参构造方法,我们一般会加上@NoArgsConstructor;
    但是加上@NoArgsConstructor后,class文件不再会有全参构造函数,进而导致@Builder失效。所 以要同时加上@AllArgsConstructor和@NoArgsConstructor

2021-10-15

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA:@Builder注解深层特性(笔记) 的相关文章

随机推荐

  • 阿里云ACK(容器服务)+ElasticWorkload弹性负载+HPA弹性伸缩实践

    背景 阿里云ACK kubernetes容器服务 高弹性 高稳定性 低成本解决方案 通过将ECI服务以虚拟节点的方式接入ACK容器集群 将集群中pod应用的固定量调度到现有的ACK容器服务的ECS node节点上 将集群中pod应用的弹性量
  • 测试用例要如何写

    1 测试点与测试用例 测试点不等于测试用例 这是我们首先需要认识到的 问题1 这些测试点在内容上有重复 存在冗余 问题2 一些测试点的测试输入不明确 不知道测试时要测试哪些 问题3 总是在搭相似的环境 做类似的操作 问题4 测试点描述得太粗
  • CWnd和HWND的区别

    所有控件类都是CWnd类的派生类 CWnd的所有成员函数在控件类中都可以使用 在MFC中 CWnd类是一个很重要的类 它封装了Windows的窗口句柄HWND 在Windows编程中 每一个窗口都是有窗口句柄标识的 但是 类CWnd的对象和
  • 基于ResNet50算法实现图像分类识别

    概要 在本文中将介绍使用Python语言 基于TensorFlow搭建ResNet50卷积神经网络对四种动物图像数据集进行训练 观察其模型训练效果 一 目录 ResNet50介绍 图片模型训练预测 项目扩展 二 ResNet50介绍 Res
  • 2020年第一碗鸡汤

    2020年第一碗鸡汤 2020年第一天 新的一年如何生活 对照下这40条 看看那些有益 关于 如何生活 英国作家马特 海格给出的40条建议 01 快乐出现的时候 享受快乐 02 小口慢饮 别狼吞虎咽 03 对自己温柔些 少工作 多休息 04
  • 计算机音乐怎么把音乐放u盘,怎么把音乐拷贝到u盘

    语音内容 大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 把音乐拷贝到u盘的方法如下 1 首先在电脑上插入u盘 2 然后打开 我的电脑 或者 计算机 找到U盘 点击打开 3 同时找到装有音乐的文件夹 长按鼠标 在弹出的选
  • 2021.11.16-17总结

    数据结构串 串是由字符组成的有序数列 相等要字符长度相等并且每一个字符相等 顺序串 非紧缩格式 每个单元一个字符 紧缩格式 每个单元多个字符 链串 每个节点存放的字符数称为节点大小 串的匹配模式 BF算法 KMP算法 KMP算法避免了主串指
  • python混合线性模型_Python Statsmodels Mixedlm(混合线性模型)随机效应

    我对Statsmodels Mixedlm的输出感到有点困惑 我希望有人可以解释一下 我有一个大型的单户住宅数据集 包括每个房产的前两个销售价格 销售日期 我对整个数据集进行了地理编码 并获取了每个属性的高程 我试图了解不同城市之间提升与房
  • React隐藏显示元素

    1 引入 2 添加布尔类型的状态变量 3 切换变量的状态值 4 给 div 赋值 给button按钮设置点击事件 这样就可以实现了 div
  • 网格问题(回溯/DP):最短路径(排除障碍物)+路径数量+路径最大/小和+判断路径存在

    一 网格中的最短路径 1 1 可以消除障碍物 LeetCode1293 网格中的最短路径 给你一个 m n 的网格 其中每个单元格不是 0 空 就是 1 障碍物 每一步 您都可以在空白单元格中上 下 左 右移动 如果您 最多 可以消除 k
  • 全景xml元素认识

    一个全景项目它最核心的文件就是xml文件 项目可以由很多个xml文件组成 用Include 引入 另外就是官方的plugin组件 krpano元素 krpano xml 文件的根元素 不能没有 include元素 嵌入 引入 其他xml文件
  • 代码覆盖率测试

    步骤 1 编译代码 gcc a c fprofile arcs ftest coverage 2 执行代码 a out 3 生成info文件 lcov d t test o test info b c 4 生成result文件夹 genht
  • aix 进程占用内存_AIX 5L上的共享库内存占用量

    本文研究了共享库如何在32位AIX 5L 5 3 上占用内存 并演示了以下命令 ps svmon slibclean 禁止 进程图 Genkld 风格 本文讨论了进程的虚拟地址空间 以及内核共享库段 如何检查它们以及如何解释上述各种诊断实用
  • POI Excel 基础(一)

    POI 5 2 3 官网 github POI HSSF and POI XSSF SXSSF 用于访问Microsoft Excel格式文件的Java API HSSF 是Horrible SpreadSheet Format的缩写 也即
  • 手机内部充电电流控制原理图(如果手机支持快充,比如支持9V快充,则通过充电接口的D+、D-二根线,输出对应的高低电平组合,FP6601就会控制它的3脚接地,4脚悬空,此时R3与R2并联,改变反馈下拉)

    手机内部充电电流控制原理图 来源 电工之家 作者 电工之家 2019 12 08 10 48 7365次阅读 0 手机充电器电流控制方面 现在的手机充电器 无一例外 都使用了隔离式开关电源电路 充电器的体积 是最好的证明 对于隔离式开关电源
  • Linux内存管理之OOM Killer

    什么是OOM Killer OOM Killer是linux自带的一个程序 它的作用是在系统内存不足的时候启动 杀掉一些进程来保证系统继续运行 为什么需要OOM Killer 这里就需要介绍一个Linux里非常重要的概念了 overcomm
  • 2015年1月16日星期五(12-1)

    终于进入最麻烦的地方了 高级纹理映射 在这里 变换和光照计算中将使用浮点数 光栅化函数用定点数 由于函数将会爆炸性地增加 所以一个个地进行 不使用Z缓存的新光栅化函数 将固定或恒定着色的多边形绘制到屏幕上 首先排序三角形再绘制 void d
  • 用Unity3D和VuforiaSDK简单做AR应用(实战)

    一 首先来到https developer vuforia com downloads sdk 这里有高通给予的很多开发包 当然也有很多的学习资源 接下来说重点 下载vuforia unity mobile android ios 4 2
  • HJ33 整数与IP地址间的转换

    Powered by NEFU AB IN Link 文章目录 HJ33 整数与IP地址间的转换 题意 思路 代码 HJ33 整数与IP地址间的转换 题意 原理 ip地址的每段可以看成是一个0 255的整数 把每段拆分成一个二进制形式组合起
  • JAVA:@Builder注解深层特性(笔记)

    JAVA 记录 Builder的特性 Builder原理 在构造方法A上引用时 相当于建造一个构造器G 构造器G只可以构造A方法参数列表里的字段 在类上引用时 相当于给这个类一个全参构造方法 然后给这个全参构造方法加上 Builder注解