• JAVA 枚举类遍历与switch使用


    1、定义枚举类


    import com.baomidou.mybatisplus.annotation.EnumValue;
    import com.fasterxml.jackson.annotation.JsonCreator;
    import com.fasterxml.jackson.annotation.JsonValue;
    import com.zxtech.framework.exception.UnknownEnumException;
    import com.zxtech.framework.model.enums.IEnum;
    import com.zxtech.framework.util.StringUtils;

    /**
    * <p>
    * 流程节点名称枚举
    * </p>
    *
    * @author Caratacus
    */
    public enum InstanceNodeEnum implements IEnum {

    JobsiteRequirementFeedbackMainProcess(0, "工地需求反馈主流程启动"),
    JobsiteRequirementTurnback(1, "工地需求修改"),
    FSDPICEngineerPretreatment(2,"FSD/PIC工程师预处理"),
    InstallationOrServiceManagerApproval(3,"安装/维保经理审批"),
    NonStandardDesign(4,"非标设计"),
    PackageDesign(5,"包装设计"),
    FSDPICManagerVerification(6,"FSD/PIC经理审核"),
    ExportMaterialListforJDESARelease(7,"导出物料清单用于JDE/SA释放"),
    PlanOrderConfirmationAMUIPO(8,"计划订单确认(AM/UI PO)"),
    SupplierMaterialShippment(9,"供应商物料发运"),
    MaterialConfirmation(10,"物料确认"),
    OverseasMaterialQuotation(11,"海外物料报价"),
    MaterialShippment(12,"物料发运");
    @EnumValue
    private final int value;

    private final String desc;

    InstanceNodeEnum(int value, String desc) {
    this.value = value;
    this.desc = desc;
    }

    @Override
    public int getValue() {
    return value;
    }

    public String getDesc() {
    return desc;
    }

    /**
    * 通过value取枚举
    * * @param value
    * * @return
    */
    public static InstanceNodeEnum getTypeByValue(String value) {
    if (StringUtils.isEmpty(value)) {
    return null;
    }

    int valueKey = Integer.parseInt(value);
    for (InstanceNodeEnum enums : InstanceNodeEnum.values()) {
    if (enums.getValue() == valueKey) {
    return enums;
    }
    }
    return null;
    }

    /**
    * 通过value取描述
    * * @param value
    * * @return
    */
    public static String getDescByValue(int value) {
    for (InstanceNodeEnum enums : InstanceNodeEnum.values()) {
    if (enums.getValue() == value) {
    return enums.getDesc();
    }
    }
    return"";
    }
    }

    2、枚举类遍历

    for (InstanceNodeEnum nodeTypeEnum : InstanceNodeEnum.values()) {
    nodeTypeEnum.getValue();
    nodeTypeEnum.getDesc();
    List<AMTTrackingTbFeedbackinfoDTO> curNodeList=amtTrackingInfoList.stream().filter(s-> (StringUtils.isNotEmpty(s.getInstanceNodeName())&&s.getInstanceNodeName().equals(nodeTypeEnum.getDesc()))).collect(Collectors.toList());
    calcNodeAMTTrackingInfo(String.valueOf(nodeTypeEnum.getValue()),curNodeList,resultList);
    }

    3、枚举类结合switch使用

    private void calcNodeAMTTrackingInfo(String nodeIndex,List<AMTTrackingTbFeedbackinfoDTO> curNodeList,List<JSONObject> resultList) {
    String nowDate=DateUtils.getNowDate();
    InstanceNodeEnum instanceNodeEnum = InstanceNodeEnum.getTypeByValue(nodeIndex);
    switch (instanceNodeEnum) {
    case JobsiteRequirementFeedbackMainProcess:
            doSomething();
         break;
    case JobsiteRequirementTurnback:
           doSomething();
         break;
         default:
         break;


            






  • 相关阅读:
    form表单回车提交
    Mac os x下配置nginx + php
    Mac下git命令自动补全
    关于javascript中的操作符&&和||的最终返回值
    ARM 裸机程序学习 01 点亮LED
    LINUX SHELL 中 2>&1 重定向的问题
    项目经理到底关心项目的什么?——有关外包项目成本的计算
    ARM 裸机程序学习 03 发送SOS信号(汇编 + C)
    ARM 裸机程序学习 02 按响BEEP
    备忘录 Linux及其内核杂项知识
  • 原文地址:https://www.cnblogs.com/DylanZ/p/12744362.html
Copyright © 2020-2023  润新知