枚举类型的获取

文章展示了如何在Java中定义和使用枚举类,如WorkingTypeEnum用于表示作业类型,包含人工区、AGV区和不限制等选项。同时,提供了一个NumUtils工具类,用于处理数字比较。另一个枚举StockProportionTypeEnum则定义了库存比例类型,包括实物库存、模拟库存和配合库存。
摘要由CSDN通过智能技术生成

枚举类:

/**
 * 作业类型
 */
public enum WorkingTypeEnum {

//    作业类型(1=人工区,2=AGV区,0=不限制)

    ARTIFICIAL_AREA(1, "人工区"),
    AVG_AREA(2, "AGV区"),
    UNLIMITED(0, "不限制"),
    ;

    private Integer code;
    private String name;

    WorkingTypeEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static String getNameByCode(Integer code) {
        return Arrays.stream(WorkingTypeEnum.values()).filter(enumObj -> NumUtils.eq(code, enumObj.getCode()))
                .findFirst().map(WorkingTypeEnum::getName).orElse("");
    }

    public static Integer getCodeByName(String name) {
        return Arrays.stream(WorkingTypeEnum.values()).filter(enumObj -> StringUtils.equals(name, enumObj.getName()))
                .findFirst().map(WorkingTypeEnum::getCode).orElse(null);
    }
}

工具类:

**
 * 数字工具类
 */
public class NumUtils {
    private static final Logger log = LoggerFactory.getLogger(NumUtils.class);

    public static Boolean eq(Object i, Object j) {
        if (i == null || j == null) return false;
        return StringUtils.equals(i.toString(), j.toString());
    }

    public static Boolean anyEq(Object i, Object... j) {
        return Arrays.stream(j).anyMatch(o -> eq(i, o));
    }

    public static Boolean anyEq(Object i, List j) {
        return j.stream().anyMatch(o -> eq(i, o));
    }



    public static Boolean allEq(Object i, Object... j) {
        return Arrays.stream(j).allMatch(o -> eq(i, o));
    }

    public static Boolean notEq(Object i, Object j) {
        return !eq(i, j);
    }

    public static Integer parseInt(String uid) {
        try {
            return Integer.parseInt(uid);
        } catch (NumberFormatException e) {
            log.error(e.getMessage(), e);
        }
        return null;
    }
}

参考2:根据code获取名称

public enum StockProportionTypeEnum {

    SAFETY_STOCK(1, "实物库存"),
    VIRTUAL_INVENTORY(2, "模拟库存"),

    QUOTA_INVENTORY(3, "配合库存"),
    ;


    private Integer code;

    private String message;

    StockProportionTypeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public Integer getCode() {
        return this.code;
    }

    public String getMessage() {
        return this.message;
    }

    public static String getMessageByCode(Integer code) {
        for (StockProportionTypeEnum stockProportionTypeEnum : values()) {
            if (stockProportionTypeEnum.getCode().equals(code)) {
                return stockProportionTypeEnum.getMessage();
            }
        }
        return null;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值