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 提供了许多方便的功能,但过度使用不当使用可能会导致代码难以理解和维护。

相关推荐
庞轩px几秒前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
徐小夕15 分钟前
我用 AI 撸了个开源"万能预览器":浏览器直接打开 Office、CAD 和 3D 模型
前端·vue.js·github
m0_6948455728 分钟前
Dify部署教程:从AI原型到生产系统的一站式方案
服务器·人工智能·python·数据分析·开源
小码哥_常29 分钟前
Flutter Android 延迟加载代码指南:提升应用性能的关键
前端
皮皮林5511 小时前
面试官:ZSet 的底层实现是什么?
java
这是个栗子1 小时前
TypeScript(三)
前端·javascript·typescript·react
kvo7f2JTy1 小时前
基于机器学习算法的web入侵检测系统设计与实现
前端·算法·机器学习
北风toto1 小时前
前端CSS样式详细笔记
前端·css·笔记
nanfeiyan1 小时前
git commit
前端
码云数智-大飞1 小时前
C++ RAII机制:资源管理的“自动化”哲学
java·服务器·php