如何使用lombok创建私有builder()方法

时间:2018-03-01 08:35:52

标签: java lombok

我正在使用lombok @Builder。当我在@Builder课程上添加MyExample注释时,@Builder会生成公开 builder()方法。但我想制作私有 builder()方法。遗憾的是,@Builder注释没有access选项。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您可以覆盖生成的生成器方法以使其私有。据我所知,这是唯一的方法:

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

}

答案 1 :(得分:-2)

您可以使用这样的注释:@Builder(access = AccessLevel.PRIVATE)