Lombok:@Singular集合元素灵活添加利器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、@Singular介绍

二、使用示例

三、注意事项

四、使用场景

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、@Singular介绍

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

二、使用示例

复制代码
@Data
@Builder
public class User {
    private String name;
    private int age;
    @Singular
    private List<String> hobbies;
}

// 使用 @Builder 和 @Singular 生成的方法
User user = User.builder()
    .name("练习时长两年半")
    .age(28)
    .hobby("篮球") // 添加单个元素
    .hobby("唱歌") // 添加单个元素
    .hobbies(Arrays.asList("跳舞", "其他")) // 添加整个集合
    .build(); // 构造 User 对象

可以看出,使用 @Singular 注解的好处是,你可以灵活地添加集合类型的字段,而不需要自己创建和初始化集合对象

如果我们在做单元测试或者编码的时候,能够很方便的完成集合的操作,包括添加多个元素和添加单个元素。

另外,使用 @Singular 注解生成的集合字段,在调用 build() 方法后,会被转换为不可变的集合,这样可以保证对象的不变性和线程安全性。你也可以使用 clear() 方法来清空集合字段

三、注意事项

1、使用 @Singular 注解生成的集合字段,在调用 build() 方法后,会被转换为不可变的集合

2、如果你的类继承了一个父类,那么 @Builder 只会生成当前类的字段和参数,不包括父类的

四、使用场景

1、利用可以添加单个元素的特性,可以在不定义集合的情况下,完成编码

2、利用生成的集合对象的不变性和线程安全性,在某些特殊的场景下,可以作为只读信息存在


总结

每天进步一点点!

相关推荐
Flittly4 小时前
【AgentScope Java新手村系列】(16)从RAG到多路检索
java·spring boot·spring
小兔崽子去哪了5 小时前
Java 生成二维码解决方案
java·后端
人活一口气9 小时前
从JVM调优到MCP协议:Java全栈技术体系深度总结与企业级架构实践
java·spring boot
NE_STOP11 小时前
Vibe Coding -- 完整项目案例实操
java
荣码11 小时前
GraphRAG:普通RAG只能回答"点"的问题,我踩了4个坑才搞懂
java·python
SimonKing11 小时前
Google第三方授权登录
java·后端·程序员
明月光81811 小时前
从一行 @Builder 说起:重新拾起 Java 的 Lombok、注解与 Builder 模式
java
考虑考虑20 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯21 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
青石路1 天前
记一次多JDK版本问题的排查,一坑套一坑,差点没爬上来
java