创建枚举类减少修改

枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的 bug
例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。

注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。

import org.apache.commons.lang3.StringUtils;

import java.util.Objects;

public enum CmpTypeEnum {
    LOANBALANCECOTRAST(0, "a"), OLBANKBALANCE(1, "b"),
    OLBANKAMOUNT(2, "c");

    private Integer state;
    private String message;

    public Integer getState() {
        return state;
    }

    public String getMessage() {
        return message;
    }

    CmpTypeEnum(Integer state, String message) {
        this.state = state;
        this.message = message;
    }

    public static CmpTypeEnum stateOf(Integer value) {
        for (CmpTypeEnum item : values()) {
            if (Objects.equals(item.getState(), value)) {
                return item;
            }
        }
        return null;
    }

    public static CmpTypeEnum msgOf(String message) {
        for (CmpTypeEnum item : values()) {
            if (StringUtils.equals(item.getMessage(), message)) {
                return item;
            }
        }
        return null;
    }
}

 

定义枚举数据,方块中的类型可任意

这里需注意要与枚举数据的类型同步。 

遍历这个枚举并附初始值

Map<Object, Object> resultMap = new HashMap<>();

//赋初始值{"a":null,"b":null}

Arrays.stream(CmpTypeEnum.values()).forEach(e -> resultMap.put(e.getMessage(), null));

QueryWrapper<CompareResultModel> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().select(CompareResultModel::getCompareType, CompareResultModel::getResultStatus)
        .eq(CompareResultModel::getCompareFlag, 0)
        .groupBy(CompareResultModel::getCompareType, CompareResultModel::getResultStatus);

List<CompareResultModel> groupList = this.list(queryWrapper);
//进行分组
Map<Integer, List<CompareResultModel>> collect = groupList.stream().collect(Collectors.groupingBy(CompareResultModel::getCompareType));
//循环这个数组
for (Map.Entry<Integer, List<CompareResultModel>> entry : collect.entrySet()) {
//通过枚举获取英文名
    CmpTypeEnum cmpTypeEnum = CmpTypeEnum.stateOf(entry.getKey());
    if (Objects.isNull(cmpTypeEnum)) {
        continue;
    }
    boolean shouldSame = entry.getValue().stream().allMatch(e -> Objects.equals(e.getResultStatus(), 1));
    resultMap.put(cmpTypeEnum.getMessage(), shouldSame);
}

return ServerResponse.createBySuccess(resultMap);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值