Java >> Java tutorial >  >> Tag >> private

Sådan laver du private builder()-metoden med lombok

Du kan overskrive den genererede builder-metode for at gøre den privat. Så vidt jeg ved, er det den eneste måde:

@Builder
public static class Foo<F, T> {

    // hide lombok's builder method:
    private static FooBuilder builder() {
        return new FooBuilder();
    }

}

Dette giver dig dog mulighed for at foretage en mere avanceret initialisering af builderen. For eksempel kan du initialisere builderen med nogle standardindstillinger og også kickstarte builderen med initiale brugerleverede værdier.

Her er et eksempel:

@Builder
public static class Car {

    // kickstart builder method available to user
    public static CarBuilder builder(String brand, String model) {
        return builder().brand(brand).model(model);
    }

    // hide lombok's own builder method and apply some defaults:
    private static CarBuilder builder() {
        return new CarBuilder().color(System.getenv("DEFAULT_CAR_COLOR"));
    }

}

Java tag