繁体   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