Java Lombok | Declaring Additional setter Methods for Collection Types - @Singular

@Singular

If you declare @Builder and leave the default behavior as is, fields of collection types are also generated as ordinary setter methods that overwrite the value. If you want Lombok to automatically generate add-style methods, you can declare the @Singular annotation on the field.

package com.devkuma.tutorial.lombok;

import lombok.Builder;
import lombok.Singular;
import lombok.ToString;

import java.util.Arrays;
import java.util.List;

@Builder
@ToString
public class SingularTutorial {

    private String string;
    private int number;
    @Singular("list")
    private List<String> list;

    public static void main(String[] args) {
        SingularTutorialBuilder builder = SingularTutorial.builder()
                .string("test")
                .number(100)
                .list("kimkc")
                .list("happykuma")
                .list(Arrays.asList("devkuma", "araikuma"));

        SingularTutorial tutorial = builder.build();

        System.out.println(tutorial);
    }

}

Execution result:

SingularTutorial(string=test, number=100, list=[kimkc, happykuma, devkuma, araikuma])