Java 如何使用lombok生成private builder()方法

Java 如何使用lombok生成private builder()方法,java,lombok,Java,Lombok,我正在使用。当我将@Builder注释放在MyExample类上时,@Builder生成publicBuilder()方法。但是我想让私有builder()方法。不幸的是,@Builder注释没有访问选项。我该怎么做?您可以像这样使用注释:@Builder(access=AccessLevel.PRIVATE)您可以覆盖生成的Builder方法使其私有。据我所知,这是唯一的办法: @Builder public static class Foo<F, T> { // hid

我正在使用。当我将
@Builder
注释放在
MyExample
类上时,
@Builder
生成public
Builder()
方法。但是我想让私有
builder()
方法。不幸的是,
@Builder
注释没有
访问
选项。我该怎么做?

您可以像这样使用注释:
@Builder(access=AccessLevel.PRIVATE)
您可以覆盖生成的Builder方法使其私有。据我所知,这是唯一的办法:

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

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

}

我认为Builder上没有访问权限?您可以做的是至少将Builder类设置为私有<代码>私有静态类MyExampleBuilder{}在定义类时,lombok仍将生成实现。客户端仍然可以访问builder()操作,但他们将无法实际使用返回的builder对象。这个答案(现在)实际上是正确的:
access
@builder
上提供,从v1.18.8 per开始。当前的方法仍然有效且最灵活,但如果OP只是想按要求更改
builder()
的作用域,那么这种方法就太过分了
@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"));
    }

}