Я использую Lombok @Data
и @Builder
аннотации, подобные этому:
@Data
@Builder(toBuilder = true)
class Movie {
// Some other fields here.
private final List<Actor> actors;
}
Когда я создаю новый Movie
с помощью построителя без указания каких-либо участников, я ожидаю, что Ломбок инициализирует мой список до Collections.emptyList()
. Но этого не происходит:
List<Actor> actors = Movie.builder().build().getActors();
System.out.println(actors); // Prints 'null'.
В документации для аннотации @Builder
она указана в строках 55 и 56 в примере кода для Vanilla Java (https://projectlombok.org/features/Builder.html), я должен посмотреть пример кода для @Singular
(https://projectlombok.org/features/Singular-snippet.html). На строке 112 в примере Java Vanilla здесь кажется, что список должен быть инициализирован в пустой список.
Я проверил, и это действительно произойдет, если я аннотирую список с помощью @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 '[]'.
Это ошибка в Ломбоке, или есть что-то, что я делаю неправильно? Согласно документации, похоже, что список должен быть инициализирован пустым списком в обоих случаях (поскольку документ @Builder
относится к документу @Singular
).