[英]Lombok builder package scope
I would like to generate package-scope
builder using Lombok , but I'm not sure if it's possible (I didn't find any clues in documentation ). 我想使用Lombok生成package-scope
构建器,但我不确定它是否可行(我没有在文档中找到任何线索)。
By default Lombok generates public
builder, ie this code: 默认情况下,Lombok生成public
构建器,即此代码:
@Builder
class User {
private final String name;
}
Is translated into this: 翻译成这个:
class User {
private final String name;
User(final String name) {
this.name = name;
}
public static User.UserBuilder builder() { // <-- how to make it package-private?
return new User.UserBuilder();
}
public static class UserBuilder { // <-- how to make it package-private?
private String name;
UserBuilder() {
}
public User.UserBuilder name(final String name) {
this.name = name;
return this;
}
public User build() {
return new User(this.name);
}
public String toString() {
return "User.UserBuilder(name=" + this.name + ")";
}
}
}
Is there any way to generate builder class without this leading public
keyword? 有没有办法生成没有这个领先的public
关键字的构建器类?
Check out the below in the @Builder documentation : 请查看@Builder文档中的以下内容 :
@Builder(access = AccessLevel.PACKAGE) is legal (and will generate the builder class, the builder method, etc with the indicated access level) starting with lombok v1.18.8 @Builder(access = AccessLevel.PACKAGE)是合法的(并将生成具有指示的访问级别的构建器类,构建器方法等)从lombok v1.18.8开始
And if you see the source code of Builder here , you'll see that by default, the access level of a @Builder
would be lombok.AccessLevel.PUBLIC
, but can be made package-private with @Builder(access = AccessLevel.PACKAGE)
. 如果你看到生成器的源代码, 在这里 ,你会看到,默认情况下,访问级别@Builder
将lombok.AccessLevel.PUBLIC
,但可以制成包装和私营部门与@Builder(access = AccessLevel.PACKAGE)
。
Also FYI, the following access levels are supported by @Builder
: PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE
. 另外,仅供参考, @Builder
支持以下访问级别: PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE
。 This is via the AccessLevel
enum's source code here . 这是通过AccessLevel
枚举的源代码在这里 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.