簡體   English   中英

Lombok構建器包范圍

[英]Lombok builder package scope

我想使用Lombok生成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關鍵字的構建器類?

請查看@Builder文檔中的以下內容

@Builder(access = AccessLevel.PACKAGE)是合法的(並將生成具有指示的訪問級別的構建器類,構建器方法等)從lombok v1.18.8開始

如果你看到生成器的源代碼, 在這里 ,你會看到,默認情況下,訪問級別@Builderlombok.AccessLevel.PUBLIC ,但可以制成包裝和私營部門與@Builder(access = AccessLevel.PACKAGE)

另外,僅供參考, @Builder支持以下訪問級別: PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE 這是通過AccessLevel枚舉的源代碼在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM