簡體   English   中英

如何使用 lombok 制作私有 builder() 方法

[英]How to make private builder() method with lombok

我正在使用lombok @Builder 當我在MyExample類上放置@Builder注釋時, @Builder生成公共builder()方法。 但我想制作私有builder()方法。 不幸的是, @Builder注釋沒有access選項。 我該怎么辦?

您可以覆蓋生成的構建器方法以將其設為私有。 據我所知,這是唯一的方法:

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

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

}

但是,這使您能夠對構建器進行一些更高級的初始化。 例如,您可以使用一些默認值初始化構建器,還可以使用用戶提供的初始值啟動構建器。

下面是一個例子:

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

}

您可以使用這樣的注釋: @Builder(access = AccessLevel.PRIVATE)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM