Java Lombok | コレクション型に追加setterメソッドを宣言 - @Singular

@Singular

@Builderを宣言してデフォルトのままにすると、コレクション型のフィールドも通常どおり値を上書きするsetterメソッドとして自動生成される。 追加メソッドとして自動生成したい場合は、フィールドに@Singularアノテーションを宣言できる。

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);
    }

}

実行結果:

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