我在使用 dto 创建请求时遇到问题。我使用 singletonList 在项目列表中包含一个元素。我该怎么做才能将第二个项目添加到请求正文中的项目列表中?
request dto:
public class RmaNewRequestDTO {
@JsonProperty("return")
Return returnData;
Order order;
Store store;
List<Items> items;
(...)
@Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
public static class Items {
int orderItemId, qtyRequested, resolution;
}
}
request body:
RmaNewRequestDTO rmaNewRequest = RmaNewRequestDTO.builder()
(...)
.items(Collections.singletonList(RmaNewRequestDTO.Items.builder()
.orderItemId(itemOrderId.get(0))
.qtyRequested(firstProduct.getQuantity())
.resolution(RESOLUTION_ID_REFUND)
.productSku(firstProduct.getSku())
.ean(firstProduct.getEan())
.build()))
(...)
.build();
@Singular
放在任何集合字段上。 Lombok 现在将创建两个 adder 方法,允许您将元素添加到集合中,可以一个一个地添加,也可以一次添加多个元素。
在你的情况下,它看起来像这样:
public class RmaNewRequestDTO {
...
@Singular List<Items> items;
...
您现在可以按如下方式使用它:
RmaNewRequestDTO.builder()
.item(myFirstItem)
.item(mySecondItem)
...
请注意,这两种方法都只添加元素,即使是具有集合类型参数的方法也是如此。如果您想重置(清空)列表,请使用
clear
方法。