stream-enum判断
InventoryDetailTypeEnum inventoryDetailTypeEnum = Arrays.stream(InventoryDetailTypeEnum.values()) .filter(it -> it.getCode() == deductInventoryInfoDTO.getInventoryDetailType()) .findFirst() .orElseThrow(() -> new MzException(PmsErrorEnum.INVENTORY_DETAIL_TYPE_ERROR));
比如这个enum:
/** * 库存操作明细类型 * @author hejun */ public enum InventoryDetailTypeEnum { DEDUCT_INVENTORY((byte)1, "交易扣减库存"), RECOVERY_INVENTORY((byte)2, "交易回退库存"), PRE_ORDER_DEDUCT_INVENTORY((byte)3, "预订单扣减"), PRE_ORDER_RECOVERY_INVENTORY((byte)4, "预订单回退"), PRE_ORDER_TO_ORDER_DEDUCT_INVENTORY((byte)5, "预订单转正式订单"), ORDER_TO_PRE_ORDER_RECOVERY_INVENTORY((byte)6, "正式订单回退到预订单") ; InventoryDetailTypeEnum(byte code, String msg) { this.code = code; this.msg = msg; } private byte code; private String msg; public byte getCode() { return code; } public String getMsg() { return msg; } /** * 根据code获取MSG * @param code * @return */ public static String getMsgByCode(byte code){ for (InventoryDetailTypeEnum element : InventoryDetailTypeEnum.values()) { if(element.getCode() == code){ return element.getMsg(); } } return ""; } public static boolean contains(Object value) { if(value == null){ return false; } for (InventoryDetailTypeEnum element : InventoryDetailTypeEnum.values()) { if(element.getCode() == Byte.valueOf(value.toString())){ return true; } } return false; } /** * 获取全部枚举值 * * @return */ public static Map<Number, String> getDataMap() { Map<Number, String> dataMap = new HashMap<Number, String>(); for (InventoryDetailTypeEnum element : InventoryDetailTypeEnum.values()) { dataMap.put(element.getCode(), element.getMsg()); } return dataMap; } }
本文来自博客园,作者:aspirant,转载请注明原文链接:https://www.cnblogs.com/aspirant/p/14680116.html