网站首页 > 博客文章 正文
前面文章中已经详细介绍了Lombok中@Builder注解的使用,以及代码演示。本文进一步分析@Builder注解的参数配置。
在 IntelliJ IDEA 中查看 Lombok 生成的代码
一、@Builder 注解源码
下面我们再来详细看看@Builder这个注解类的详细实现:
// 指定实体类中创建 Builder 的方法的名称,默认为: builder
String builderMethodName() default "builder";
// 指定 Builder 中用来构建实体类的方法的名称,默认为:build
String buildMethodName() default "build";
// 指定创建的建造者类的名称,默认为:实体类名+Builder
String builderClassName() default "";
// 使用toBuilder可以实现以一个实例为基础继续创建一个对象。也就是重用原来对象的值
boolean toBuilder() default false;
二、使用@Builder 注解参数
builderMethodName : 创建构建器实例的方法名称
buildMethodName:构建器类中创建构造器实例的方法名称
builderClassName:构造器类名
toBuilder:生成toBuilder方法
下面这段示例代码,使用了上述@Builder 注解参数:
import lombok.Builder;
import lombok.ToString;
@Builder(builderClassName = "Builder",
buildMethodName = "create",
builderMethodName = "creator",
toBuilder = true
)
@ToString
public class User {
private Integer id;
private String name;
private String address;
public static void main(String[] args) {
User user = User.creator()
.id(100)
.name("rickie")
.address("Shanghai")
.create();
System.out.println(user);
User user2 = new User(102, "Jack", "上海");
user2 = user2.toBuilder()
.name("马老师")
.create();
System.out.println(user2);
}
}
通过IDEA中的结构(Structure)视图,可以看到如下变化,如图所示:
同时,在使用构建器时,也需要更改代码,如图所示:
启动应用,输出结果如下所示:
User(id=100, name=rickie, address=Shanghai)
User(id=102, name=马老师, address=上海)
猜你喜欢
- 2025-06-28 一口气说出 6 种 @Transactional 注解的失效场景
- 2025-06-28 idea插件开发,写Java代码时中文字符替换为英文字符的多种方法
- 2025-06-28 2020年最新Java全套教程注解(java简明教程)
- 2025-06-28 13.零基础开发商城项目:springboot常用注解
- 2025-06-28 idea万能快捷键,你不知道的17个实用技巧!!!
- 2025-06-28 IDEA 常用快捷键大全,看完直呼 666
- 2025-06-28 idea常用java插件(idea 常用插件)
- 2025-06-28 代码神器:拒绝重复编码,这款IDEA插件了解一下.....
- 2025-06-28 IDEA配置sonar扫描代码(idea sonarqube)
- 2025-06-28 一篇文章带你了解代码(附代码截图)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)