Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lombok builder包范围_Java_Builder_Lombok_Access Modifiers_Package Private - Fatal编程技术网

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很乐意帮忙:)