Lombok alcance Generador de paquetes

k13i:

Me gustaría generar package-scopeconstructor usando Lombok , pero no estoy seguro si es posible (no he encontrado ninguna pista en la documentación ).

Por defecto Lombok genera publicconstructor, es decir, este código:

@Builder
class User {

    private final String name;
}

Se traduce en lo siguiente:

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 + ")";
        }
    }
}

¿Hay alguna manera de generar la clase constructor sin que esto conduzca publicpalabra clave?

Madhu Bhat:

Echa un vistazo a la continuación en la documentación @Builder :

@Builder (acceso = AccessLevel.PACKAGE) es legal (y generará la clase constructor, el método constructor, etc con el nivel de acceso indicada) partiendo de v1.18.8 lombok

Y si ves el código fuente del constructor aquí , verá que, por defecto, el nivel de acceso de un @Buildersería lombok.AccessLevel.PUBLIC, pero se pueden hacer paquete-privada con @Builder(access = AccessLevel.PACKAGE).

También FYI, los siguientes niveles de acceso son compatibles con @Builder: PUBLIC, MODULE, PROTECTED, PACKAGE, PRIVATE. Esto se realiza a través del AccessLevelcódigo fuente de enumeración aquí .

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=230856&siteId=1
Recomendado
Clasificación