Java Lombok builder包范围
我想使用生成Java Lombok builder包范围,java,builder,lombok,access-modifiers,package-private,Java,Builder,Lombok,Access Modifiers,Package Private,我想使用生成package scopebuilder,但我不确定这是否可行(我在中没有找到任何线索) 默认情况下,Lombok生成publicbuilder,即此代码: @Builder class User { private final String name; } 翻译为: class User { private final String name; User(final String name) { this.name = name;
package scope
builder,但我不确定这是否可行(我在中没有找到任何线索)
默认情况下,Lombok生成public
builder,即此代码:
@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 + ")";
}
}
}
类用户{
私有最终字符串名;
用户(最终字符串名称){
this.name=名称;
}
public static User.UserBuilder(){/在中查看以下内容:
@生成器(access=AccessLevel.PACKAGE)从lombok v1.18.8开始是合法的(并将生成具有指定访问级别的生成器类、生成器方法等)
如果您看到Builder的源代码,您将看到默认情况下,@Builder
的访问级别将是lombok.AccessLevel.PUBLIC
,但可以使用@Builder(access=AccessLevel.package)
将包设为私有
同样仅供参考,@Builder
支持以下访问级别:公共、模块、受保护、包、私有
。这是通过AccessLevel
enum的源代码实现的。非常感谢!我有一个旧版本的Lombok,这就是为什么我没有看到这个功能(正如您提到的,它非常新鲜)@k13i很乐意帮忙:)