Cannot invoke setItemTitle(String) on the primitive type void
定义的实体类如下:
@Data
public static class RefundOrderItem implements Serializable {
/**
* 商品标题
*/
@JsonProperty("item_title")
private String itemTitle;
/**
* 数量
*/
private BigDecimal quantity;
public RefundOrderItem() {
super();
}
public RefundOrderItem(String itemTitle, BigDecimal quantity) {
this.itemTitle = itemTitle;
this.quantity = quantity;
}
}
}
这种写法不报错
request.getItems()
.add(new RefundOrderItem(productPO.getName(), quantity));
这种写法报错
request.getItems()
.add(new RefundOrderItem().setItemTitle(productPO.getName()).setQuantity(quantity)));
上述报错的解决方法如下:
在定义的实体类上加上注解:@Accessors(chain = true)
实体类代码如下:
@Data
@Accessors(chain = true)
public static class RefundOrderItem implements Serializable {
/**
* 商品标题
*/
@JsonProperty("item_title")
private String itemTitle;
/**
* 数量
*/
private BigDecimal quantity;
public RefundOrderItem() {
super();
}
public RefundOrderItem(String itemTitle, BigDecimal quantity) {
this.itemTitle = itemTitle;
this.quantity = quantity;
}
}
}