[英]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.