需求: 需要计算,一个对象中,所有字段的总和
例如:现有 一个 对象,字段类型都为 BigDecimal,求总金额
思路: 将对象转换为Map ,最后获取所有value值,一次性求和
/**
* @author: xrp
* @date: 2022/08/08/17:49
* @description
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderTargetInfoVo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("1月")
private BigDecimal jan;
@ApiModelProperty("2月")
private BigDecimal feb;
@ApiModelProperty("3月")
private BigDecimal mar;
@ApiModelProperty("4月")
private BigDecimal apr;
@ApiModelProperty("5月")
private BigDecimal may;
@ApiModelProperty("6月")
private BigDecimal jun;
}
//数据源,模拟
OrderTargetInfoVo orderTargetInfoVo =new OrderTargetInfoVo(1,1,1,1,1,1);
Map<String, BigDecimal> stringObjectMap = JSON.parseObject(JSON.toJSONString(orderTargetInfoVo ), new TypeReference<Map<String, BigDecimal>>() {
});
BigDecimal targetTotal = stringObjectMap.values().stream().reduce(BigDecimal::add).orElse(new BigDecimal("0"));