我希望使用package-scope生成隆布克构建器,但我不确定这是否可行(我在文档中没有找到任何线索)。
默认情况下,Lombok生成public生成器,即该代码:
@Builder
class User {
private final String name;
}翻译为:
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 + ")";
}
}
}是否有任何方法来生成构建器类而不使用这个领先的public关键字?
发布于 2019-07-15 14:22:04
查看@Builder文档中的以下内容
@ builder (access = AccessLevel.PACKAGE)是合法的(并将从Lombokv1.18.8开始生成生成器类、构建器方法等,并具有指定的访问级别)。
如果您看到Builder 这里的源代码,您将看到默认情况下,@Builder的访问级别是lombok.AccessLevel.PUBLIC,但是可以使用@Builder(access = AccessLevel.PACKAGE)进行包私有。
另外,@Builder还支持以下访问级别:PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE。这是通过AccessLevel enum的源代码这里实现的。
https://stackoverflow.com/questions/57041667
复制相似问题