lombok 基础注解之 @Singular

本文详细介绍了 Lombok 的 @Singular 注解,它用于配合 @Builder 使用,生成向集合添加元素的方法。@Singular 注解可以自动创建添加单个元素和清空集合的方法,并在构建对象时确保集合的不可变性。支持的集合类型包括 Iterable、Collection、List、Set、SortedSet、NavigableSet、Map、SortedMap 和 NavigableMap。根据集合元素数量,build 方法会创建不同形式的不可变集合。此外,还提及了 @Singular 的 `value` 属性和 `ignoreNullCollections` 属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最全的 lombok 注解详情(随着版本不定时更新)

一、注解介绍
  • 作用于集合字段,需要配合 @Builder 使用
  • 使用 @Singular 注解一个集合字段(如果没有指定 value 属性值,那么集合字段名需要是复数形式),会生成两个添加元素方法
    一个向集合添加单个元素(方法名:集合字段名的单数形式 / value 属性值)
    一个将另一个集合的所有元素添加到集合中(方法名:集合字段名)
  • 还生成了 clear 方法(方法名:clear + 集合字段名,驼峰命名)。 这些 singular 构建器相对而言是有些复杂的,主要是来保证以下特性:
    在调用 build 方法时,生成的集合是不可变的
    在调用 build 方法之后调用其中一个添加元素方法或 clear 方法不会修改任何已经生成的对象。如果对集合修改之后,再调用 build 方法,则会创建一个基于上一个对象创建的对象实体
    生成的集合将被压缩到最小的可行格式,同时保持高效
  • @Singular 只能应用于 lombok 已知的集合类型。目前,支持的类型有:
    Iterable、Collection、List (一般情况下,生成的不可修改的 ArrayList)
    Set、SortedSet、NavigableSet (一般情况下,生成可变大小不可修改的 HashSet 或者 TreeSet)
    Map、SortedMap、NavigableMap (一般情况下,生成可变大小不可修改的 HashMap 或者 TreeMap)
  • 在调用 build 方法来创建实例对象时, 并没有直接使用 Collections.unmodifiableList(Collection c) 此方法来创建实例,而是分为三种情况
    第一种,当集合中没有元素时,创建一个空集合
    第二种,当集合中存在一个元素时,创建一个不可变的单元素集合
    第三种,根据当前集合的元素数量创建对应合适大小的集合
二、属性介绍
  • value:指定集合字段名方法名,默认为 “”
    如果指定了 value 值,那么添加单个元素的方法名为 value 属性值
    如果没有指定 value 值,那么集合字段名需要是复数形式
  • ignoreNullCollections
三、实战演练
@Builder
public class User {
   
    private String username;
    private String password;
    @Singular
    private List<String> sixties;
	
	public static void main(String[] args) {
   
	    User.builder().sixty("").build()
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值