@Builder注解的使用

这篇文章介绍了Lombok库中的@Builder注解,如何通过它自动生成建造者模式的代码,以及辅助注解如@Builder.Default处理默认参数和@Singular处理复数属性的方法。
摘要由CSDN通过智能技术生成

1.来源:@Builder 注解是 Lombok 提供的一种注解,用于简化构建对象的过程。通过在类上添加 @Builder 注解,可以自动生成一个建造者模式相关的代码,使得对象的构建更加简洁和易读。

比较:  

传统赋值:

Person person = new Person();

person.setName("Adam Savage");

person.setCity("San Francisco");

person.setJob("Mythbusters");

使用@Builder

Person person = Person.builder()

.name("Adam Savage")

.city("San Francisco")

.job("Mythbusters")

.build();

 

2、辅助注解

2.1、@Builder.Default

在传统对象中,我们直接对参数赋值可以初始化参数,但是使用@Builder后,初始化参数是无效的,所以需要在需要初始化参数上边使用@Builder.Default注明这是一个默认构造参数。

@Data

@Builder

Public class Person{

@Builder.Default

Private String name=“xiaoixiao”;

Private String job=“学生”;

}

创建对象:Person p=new Person().builder().build();

结果:person(name=xiaoixiao,job=null);

 

 2.2、@Singular

Person对象里是interests,而且类型为List<String>,但是我们赋值的参数却是interest,类型是string,两次赋值都添加到里面了。

@Data

@Builder

Public class Person{

Private String name;

@Sigular

private List<String>interests;}

创建对象:Person p=new Person().builder().name(“xiao”).interest(“吃”).interest(“喝”).build();

结果:person(name=xiao,interests=[吃,喝]);

@Singular可以识别简单的复数单词,对于以以“s”结尾的单词,要删除最后一个字母;对于某些以“es”结尾的单词,要删除最后两个字母,对于不能识别的会报错

如:

@Data

@Builder

Public class Person{

Private String name;

@Sigular

private List<String>tagList;//编译出错

}

解决方式:

@Sigular提供了别名功能,向注解添加一个值以用作单数方法名称来解决问题

@Sigular(“tag”)

private List<String>tagList;

创建对象:Person p=new Person().name(“xiao”).tag(“吃1”).tag(“喝1”).build();

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莳光.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值