what que plugin parameter libreria ejemplo data annotation java lombok

java - que - Lombok @Builder no está inicializando colecciones



que es project lombok (1)

Solo cuando usa @Singular , obtiene una lista vacía. En la página de documentación del Builder dice:

... con la anotación @Singular , lombok tratará ese nodo generador como una colección.

Sin el @Singular , lombok lo trata como cualquier otro objeto. Así que será null lugar de una colección vacía.

Divulgación: Soy un desarrollador de Lombok

Estoy usando las @Data de @Data y @Builder Lombok de esta manera:

@Data @Builder(toBuilder = true) class Movie { // Some other fields here. private final List<Actor> actors; }

Cuando creo una nueva Movie con el constructor, sin especificar ningún actor, esperaría que Lombok inicialice mi Lista a Collections.emptyList() . Pero esto no sucede:

List<Actor> actors = Movie.builder().build().getActors(); System.out.println(actors); // Prints ''null''.

En la documentación para la anotación de @Builder , se indica en las líneas 55 y 56 en el ejemplo de código para Vanilla Java ( https://projectlombok.org/features/Builder.html ) que debería ver el ejemplo de código para @Singular ( https://projectlombok.org/features/Singular-snippet.html ). En la línea 112 en el ejemplo de Vanilla Java aquí, parece que la lista debería inicializarse a la lista vacía.

Lo verifiqué, y de hecho sucede si @Singular la lista con @Singular :

@Data @Builder(toBuilder = true) class Movie { // Some other fields here. @Singular private final List<Actor> actors; } List<Actor> actors = Movie.builder().build().getActors(); System.out.println(actors); // Prints ''[]''.

¿Es esto un error en Lombok, o hay algo que estoy haciendo mal? Según la documentación, parece que la lista debería inicializarse a la lista vacía en ambos casos (porque el documento @Builder refiere al documento @Singular ).