[英]How to make private builder() method with lombok
I'm using lombok @Builder .我正在使用lombok @Builder 。 When I place
@Builder
annotation on the MyExample
class, @Builder
generates public builder()
method.当我在
MyExample
类上放置@Builder
注释时, @Builder
生成公共builder()
方法。 But I want to make private builder()
method.但我想制作私有
builder()
方法。 Unfortunately @Builder
annotation does not have access
option.不幸的是,
@Builder
注释没有access
选项。 How should I do?我该怎么办?
You can overwrite the generated builder method to make it private.您可以覆盖生成的构建器方法以将其设为私有。 As far as I know, that's the only way:
据我所知,这是唯一的方法:
@Builder
public static class Foo<F, T> {
// hide lombok's builder method:
private static FooBuilder builder() {
return new FooBuilder();
}
}
However, this enables you to do some more advanced initialization of the builder.但是,这使您能够对构建器进行一些更高级的初始化。 For example, you can initialize the builder with some defaults and also kickstart the builder with initial user-supplied values.
例如,您可以使用一些默认值初始化构建器,还可以使用用户提供的初始值启动构建器。
Here's an example:下面是一个例子:
@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.