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;
    }
}
复制代码

 

posted @   aspirant  阅读(239)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2017-04-20 linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡
点击右上角即可分享
微信分享提示