Я использую 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).