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
生成publicBuilder()
方法。但是我想让私有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"));
}
}