Итак, я только что обнаружил аннотацию Lombok @Builder
, и она мне нравится. Особенно с аннотациями @Singular
для коллекций.
В случае наследования я читал, что наиболее эффективный способ создать Builder для дочернего класса выглядит следующим образом:
@Data
@AllArgsConstructor
class User {
private String username;
private String password;
private String email;
}
@Data
@EqualsAndHashCode(callSuper = true)
public class Customer extends User {
@Singular
private List<Order> orders;
@Builder
public Customer(String username, String password, String email, List<Order> orders) {
super(username, password, email);
this.orders = orders;
}
}
Единственная проблема с этим подходом заключается в том, что @Singular
в поле заказов не действует. В Строитель можно передать только список заказов, а не один заказ. Есть ли лучший обходной путь для этой ситуации или я должен принять его таким, какой он есть?