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

相关推荐
万少14 小时前
用腻了 WorkBuddy 的默认界面?这个开源小工具给它换上了毛玻璃
前端·javascript·后端
潘正翔17 小时前
docker核心概念
linux·运维·服务器·docker·容器·centos·运维开发
阿维的博客日记18 小时前
MultipartFile 是不是表示仅仅是一个分片?
java·后端·spring·multipartfile
renhongxia118 小时前
世界模型,是“空中楼阁”还是AGI的“最后一块拼图”?
运维·服务器·数据库·人工智能·算法·agi
海上彼尚18 小时前
Nodejs也能写Agent - 16.LangGraph篇 - 条件分支与循环
前端·后端·langchain·node.js
程序员无隅18 小时前
Coding Agent 为什么压缩上下文后还能继续工作?上下文模块设计拆解
java·开发语言·数据库
Python+9918 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
二炮手亮子19 小时前
浅记java线程池
java·开发语言
一路向北North19 小时前
Spring Security OAuth2.0(23):分布式系统授权-转发明文给微服务
java·spring·微服务
To_OC19 小时前
从 “卡死半天” 到 “打字机效果”:大模型流式输出前端实现全记录
前端·javascript·llm