Lombok的注解@Singular使用demo

10/30/2023 javaLombok

@Singular注解用于生成针对集合类型(List、Set等)添加单个元素的方法。下面是一个使用@Singular注解的示例:

import lombok.Builder;
import lombok.Singular;

import java.util.List;

@Builder
public class Person {
    private final String firstName;
    private final String lastName;
    @Singular private final List<String> hobbies;

    public static void main(String[] args) {
        Person person = Person.builder()
                .firstName("John")
                .lastName("Doe")
                .hobby("Reading")
                .hobby("Cooking")
                .build();
        System.out.println(person);
    }

    @Override
    public String toString() {
        return "Person{" +
                "firstName='" + firstName + '\'' +
                ", lastName='" + lastName + '\'' +
                ", hobbies=" + hobbies +
                '}';
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

在上面的例子中,我们使用了@Builder注解和@Singular注解来自动生成代码。@Singular注解被用于hobbies字段,它会为该字段生成添加单个元素的方法,即hobby(String hobby)。因此,在创建Person对象时,我们可以通过多次调用该方法来添加多个兴趣爱好。

注意:@Singular注解只适用于Java 8或更高版本。如果你使用的是Java 7或更早的版本,则需要使用@Builder注解的oldChain属性来手动添加单个元素的方法。