package com.finance.system.dto; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONArray; import com.google.common.collect.Lists; import com.finance.common.enums.ValueTypeEnum; import com.finance.common.utils.CalculateUtil; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; import java.util.List; import java.util.stream.Collectors; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * @author mitao * @date 2024/4/12 */ @Data @ApiModel("计算规则配置值数据传输对象") @AllArgsConstructor @NoArgsConstructor public class CalculateItemDTO implements Serializable { private static final long serialVersionUID = 7842483119802233747L; @ApiModelProperty(value = "值类型", notes = "字段;符号;数字") private ValueTypeEnum valueType; @ApiModelProperty("内容") private String content; public static void main(String[] args) { CalculateItemDTO dto1 = new CalculateItemDTO(ValueTypeEnum.FIELD, "1"); CalculateItemDTO dto2 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, "*"); CalculateItemDTO dto3 = new CalculateItemDTO(ValueTypeEnum.NUMBER, "1"); CalculateItemDTO dto4 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, ")"); CalculateItemDTO dto5 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, "*"); List list = Lists.newArrayList(dto1, dto2, dto3, dto4); //将list转为jsonString String jsonString = JSON.toJSONString(list); System.out.println(jsonString); List calculateItemDTOS = JSONArray.parseArray(jsonString, CalculateItemDTO.class); System.out.println(calculateItemDTOS); String numberCalculateFormulaStr = calculateItemDTOS.stream() .map(CalculateItemDTO::getContent).collect(Collectors.joining()); System.out.println(numberCalculateFormulaStr); double calculate = CalculateUtil.calculate(numberCalculateFormulaStr); System.out.println(calculate); } }