Switch使用枚举类Enum会发生的问题——博主备忘

DBC 1.6K 0
温馨提示

具体原因可以直接百度,这里只提供解决方法,简单来说就是switch的case需要确定,而你枚举操作不确定

直接上代码
package me.zhengjie.enums;

/*
 * @author  DBC
 * @date  2021/6/8 16:00
 * @Email:957955071@qq.com
 */

import lombok.Data;
import lombok.Getter;
public enum CommitteePositionEnum {

    HONORARY_PRESIDENT("荣誉主席"),
    CHAIRMAN("主席"),
    SECRETARY_GENERAL("秘书长"),
    EXECUTIVE_CHAIRMAN("执行主席"),
    EXECUTIVE_VICE_CHAIRMAN("执行副主席"),
    EXCLUSIVE_CONSULTANT("专属顾问"),
    NULL(""),
    COMMITTEE_MEMBER("委员");

    @Getter
    private String message;


    private CommitteePositionEnum(String message) {
        this.message = message;
    }
    public static CommitteePositionEnum getByValue(String message) {
        for (CommitteePositionEnum item : values()) {
            if (item.getMessage().equals(message)) {
                return item;
            }else {
                return NULL;
            }
        }
        return null;
    }

}
  String memberPost = committeeMemberVO.getMemberPost();
            if(StringUtils.isNotEmpty(memberPost)) {

                switch (Objects.requireNonNull(CommitteePositionEnum.getByValue(memberPost))) {
                    case HONORARY_PRESIDENT:
                        honoraryPresidentList.add(committeeMemberVO);
                        break;
                    case CHAIRMAN:
                        chairmantList.add(committeeMemberVO);
                        break;
                    case SECRETARY_GENERAL:
                        secretaryGeneralList.add(committeeMemberVO);
                        break;
                    case EXECUTIVE_CHAIRMAN:
                        executiveChairmanList.add(committeeMemberVO);
                        break;
                    case EXECUTIVE_VICE_CHAIRMAN:
                        executiveViceChairmantList.add(committeeMemberVO);
                        break;
                    case COMMITTEE_MEMBER:
                        committeeMemberList.add(committeeMemberVO);
                        break;
                    case EXCLUSIVE_CONSULTANT:
                        exclusiveConsultantList.add(committeeMemberVO);
                        break;
                    default:
                        break;
                }
            }
        }

发表评论 取消回复
表情 图片 链接 代码

分享