【发布时间】:2020-08-25 17:22:06
【问题描述】:
所以我刚刚发现了 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 无效。只能将订单列表传递给创建的构建器,而不是单个订单。对于这种情况是否有更好的解决方法,还是我必须接受它的现状?
【问题讨论】:
标签: java annotations builder lombok