Java枚举类的高阶用法

曾经以为的枚举类用法如下。

public class StaffConstant {
          
   
    /**
     * 性别男
     */
    public static final String SEX_MAN= "男";
    /**
     * 性别女
     */
   public static final String SEX_MAN= "女";

实际上枚举类可以这么用

public enum StaffStatusEnum {
          
   
    MOVE_TYPE_NEW(2, "入职", "Onboarding"),
    MOVE_TYPE_BECOME(0, "转正", "End Probation"),
    MOVE_TYPE_QUIT(3, "离职", "Termination"),

    private final Integer typeId;
    private final String name;
    private final String engName;

    StaffStatusEnum (Integer typeId, String name, String engName) {
          
   
        this.typeId = typeId;
        this.name = name;
        this.engName = engName;
    }

    public Integer getTypeId() {
          
   
        return typeId;
    }

    public String getName() {
          
   
        if (LangTypeEnum.CHN.getI18nCode().equals(I18nLocaleContextHolder.getI18nLocale())) {
          
   
            return name;
        }
        return engName;
    }

    public static StaffChangeMoveTypeEnum getByTypeId(Integer typeId) {
          
   
        for (StaffChangeMoveTypeEnum staffChangeMoveTypeEnum : StaffChangeMoveTypeEnum.values()) {
          
   
            if (staffChangeMoveTypeEnum.typeId.equals(typeId)) {
          
   
                return staffChangeMoveTypeEnum;
            }
        }
        return "";
    }
}
经验分享 程序员 微信小程序 职场和发展