Lombok-@Singular 和 @Builder 组合

@Builder让类支持链构造,而@Singular让集合类型字段可以更方便的维护。

@Singular注解可以用在集合类型的字段上,它会生成两个方法,一个是添加单个元素的方法,一个是添加整个集合的方法。这两个方法可以和 @Builder 生成的其他方法一起链式调用。

看实例:

复制代码
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {

    private String name;
    private Integer age;
    @Singular
    private List<String> addresses;
}

User user = User.builder()
	.name("练习时长两年半")
	.age(28)
	.addresses(Collections.singleton("篮球")) // 添加单个元素
	.addresses(Collections.singleton("唱歌")) // 添加单个元素
	.addresses(Arrays.asList("跳舞", "其他")) // 添加整个集合
	.build(); // 构造 User 对象

尽管 Lombok 提供了许多方便的功能,但过度使用不当使用可能会导致代码难以理解和维护。

相关推荐
Hello eveybody3 分钟前
介绍最大公因数和最小公约数(C++)
java·开发语言·c++
ckhcxy4 分钟前
抽象类和接口
java·开发语言
Gerardisite5 分钟前
私域运营新利器:RPA驱动外部群多模态互动
java·人工智能·python·微信·自动化
漫游的渔夫9 分钟前
RAG 落地 3 个月,我才发现排序(Rerank)比检索更重要
前端·人工智能
@小柯555m10 分钟前
算法(字母异位词分组)
java·开发语言·算法·leetcode
爱学习的小囧13 分钟前
ESXi 环境 NFSv3 与 NFSv4.1 哪个更稳?深度对比 + 选型指南 + 运维全教程
运维·服务器·网络·虚拟化
郝学胜-神的一滴16 分钟前
epoll 边缘触发 vs 水平触发:从管道到套接字的深度实战
linux·服务器·开发语言·c++·网络协议·unix
衣乌安、16 分钟前
Agent之ReAct
前端·ai
CodeAI18 分钟前
不会 Next.js 你好意思说自己是 React 开发者?从零到上线一条龙
前端
Carsene26 分钟前
开篇:我们距离理想的 Java SQL DSL 还有多远?
java·sql