导语:小白一个,看公司代码。注意到有在实体类上加了一个@Builder 注解,秉着学习的态度,去研究了用法。
1、先看实体类TOrder
@Data
**@Builder **
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class TOrder implements Serializable {
private static final long serialVersionUID = 1L;
## 省略很多成员变量(毕竟公司代码直接cv过来的)
@ApiModelProperty(value = "结账时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private LocalDateTime checkOutDateTime;
@ApiModelProperty(value = "商户实收金额")
private BigDecimal receivedAmount;
@ApiModelProperty(value = "用户实收金额")
private BigDecimal costRealPay;
@ApiModelProperty(value = "订单原始金额")
private BigDecimal tradeAmount;
@ApiModelProperty(value = "优惠总金额")
private BigDecimal privilegeAmount;
@TableField(exist = false)
private String commercialName;
/**
* 清分金额
*/
@ApiModelProperty(value = "清分金额")
private BigDecimal divideAmount;
/**
* 清分金额
*/
@ApiModelProperty(value = "清分金额")
@TableField(exist = false)
private String userId;
}
2、结论:因为使用了@Builder 注解,所以无需写构造器。
## 借用@Builder注解,实例化一个TOrder类
TOrder torder = TOrder.builder()
.orderId(s)
.divideAmount(sum)
.build();
3、通过构建者模式和链式编程,生成一个torder对象。