枚举类


package com.izkml.mlyun.uc.user.enums;

import java.util.*;

/**
 * 编制情况枚举
 * Created by qindong on 2019/3/5 0005
 */
public enum EstablishStatusEnum {

    /**
     * 行政编制
     */
    ADMINISTRATIVE("行政编制"),
    /**
     * 事业编制
     */
    ENTERPRISE("事业编制"),
    /**
     * 工勤编制
     */
    WORK("工勤编制"),
    /**
     * 合同制
     */
    CONTRACT("合同制"),
    /**
     * 聘用制
     */
    EMPLOY("聘用制"),
    /**
     * 临时制
     */
    TEMPORARY("临时制");

    /**
     * 枚举Set,包含本枚举的所以实例
     */
    private static EnumSet<EstablishStatusEnum> enumSet = EnumSet.allOf(EstablishStatusEnum.class);

    /**
     * 描述
     */
    private String description;

    /**
     * 获取文字描述
     *
     * @return 文字描述
     */
    public String getDescription() {
        return description;
    }

    /**
     * 设置文字描述
     *
     * @param description 文字描述
     */
    public void setDescription(String description) {
        this.description = description;
    }


    /**
     * 构造函数
     *
     * @param description 描述,不可为空
     */
    EstablishStatusEnum(String description) {
        if (description == null) {
            throw new IllegalArgumentException("description不可为空");
        }
        this.description = description;
    }

    /**
     * 根据描述获取枚举
     *
     * @param description 描述
     * @return 枚举, 如果description为null或者找不到匹配的枚举, 返回null
     */
    public static EstablishStatusEnum getByDescription(String description) {
        if (description == null) {
            return null;
        }
        for (Iterator<EstablishStatusEnum> iter = enumSet.iterator(); iter.hasNext(); ) {
            EstablishStatusEnum enumObject = iter.next();
            if (description.equals(enumObject.getDescription())) {
                return enumObject;
            }
        }
        return null;
    }

    /**
     * 根据name获取枚举对象
     *
     * @param name
     * @return
     */
    public static EstablishStatusEnum getEstablishStatusEnum(String name) {
        for (EstablishStatusEnum establishStatusEnum : EstablishStatusEnum.values()) {
            if (establishStatusEnum.name().equals(name)) {
                return establishStatusEnum;
            }
        }
        return null;
    }

    public static List<Map> getEnumMap() {
        List<Map> result = new ArrayList<>();
        for (Iterator<EstablishStatusEnum> iter = enumSet.iterator(); iter.hasNext(); ) {
            Map map = new HashMap();
            EstablishStatusEnum enumObject = iter.next();
            map.put("value", enumObject.toString());
            map.put("name", enumObject.getDescription());
            result.add(map);
        }
        return result;
    }

    public static Map<String, String> getEnumForMap() {
        Map<String, String> result = new HashMap<>();
        for (Iterator<EstablishStatusEnum> iter = enumSet.iterator(); iter.hasNext(); ) {
            EstablishStatusEnum enumObject = iter.next();
            result.put(enumObject.toString(), enumObject.getDescription());
        }
        return result;
    }
}


认真可以把事情做对,而用心却可以做到完美
原文地址:https://www.cnblogs.com/fangh816/p/13295504.html