美文网首页
Spring Boot 25 -- enum 枚举的使用

Spring Boot 25 -- enum 枚举的使用

作者: 半碗鱼汤 | 来源:发表于2019-10-17 20:46 被阅读0次

    一、说明

    在 java 编程过程中,我们通常需要定义一些固定数量的常量,在 jdk1.5 以前,通常的做法是定义一个静态常量类,但自 jdk1.5 后,java 引入了枚举(关键字 enum,全称为 enumeration,值类型),在枚举中,我们可以把相关的常量分组到一个枚举类型里,枚举也比常量类有更多灵活的用法,使用枚举,可以有效的提高代码的整洁性、可读性、可维护性等等,这里简单总结一下常用的枚举用法。

    二、例子

    • 测试枚举类 EnumExample.java
    /**
     * 枚举测试类
     *
     * @author dhsg
     * @date 2019-10-17
     */
    public enum EnumExample {
    
        /**
         * 性别的定义
         */
        MAN(0, "男"),
        WOMEN(1, "女"),
        UNKNOWN(2, "未知");
    
        /**
         * 编码
         */
        private int code;
    
        /**
         * 描述信息
         */
        private String value;
    
        /**
         * 构造函数
         *
         * @param code  编码
         * @param value 描述信息
         */
        EnumExample(int code, String value) {
            this.code = code;
            this.value = value;
        }
    
        /**
         * 获取编码
         *
         * @return 编码
         */
        public int getCode() {
            return code;
        }
    
        /**
         * 获取描述信息
         *
         * @return 描述信息
         */
        public String getValue() {
            return value;
        }
    
        /**
         * 根据编码返回对应的EnumExample
         * 如果不存在对应的EnumExample,则返回null
         *
         * @param code 编码
         * @return EnumExample
         */
        public static EnumExample getEnumExampleByCode(int code) {
            //遍历当前的枚举类
            for (EnumExample enumExample : EnumExample.values()) {
                if (enumExample.getCode() == code) {
                    return enumExample;
                }
            }
            return null;
        }
    
        /**
         * 根据描述信息返回对应的EnumExample
         * 如果不存在对应的EnumExample,则返回null
         *
         * @param value 描述信息
         * @return EnumExample
         */
        public static EnumExample getEnumExampleByValue(String value) {
            //遍历当前的枚举类
            for (EnumExample enumExample : EnumExample.values()) {
                if (value.equals(enumExample.getValue())) {
                    return enumExample;
                }
            }
            return null;
        }
    
        /**
         * 根据编码返回对应的EnumExample的描述信息
         * 如果不存在对应的EnumExample,则返回null
         *
         * @param code 编码
         * @return 描述信息
         */
        public static String getValueByCode(int code) {
            EnumExample enumExample = getEnumExampleByCode(code);
            if (enumExample != null) {
                return enumExample.getValue();
            } else {
                return null;
            }
        }
    
        /**
         * 根据描述信息返回对应的EnumExample的编码
         * 如果不存在对应的EnumExample,则返回null
         *
         * @param value 描述信息
         * @return 编码
         */
        public static Integer getCodeByValue(String value) {
            EnumExample enumExample = getEnumExampleByValue(value);
            if (enumExample != null) {
                return enumExample.getCode();
            } else {
                return null;
            }
        }
    }
    
    • 使用
            System.out.println(EnumExample.MAN);
            System.out.println(EnumExample.MAN.getCode());
            System.out.println(EnumExample.MAN.getValue());
            System.out.println(EnumExample.WOMEN);
            System.out.println(EnumExample.WOMEN.getCode());
            System.out.println(EnumExample.WOMEN.getValue());
            System.out.println(EnumExample.UNKNOWN);
            System.out.println(EnumExample.UNKNOWN.getCode());
            System.out.println(EnumExample.UNKNOWN.getValue());
    
            System.out.println(EnumExample.getEnumExampleByCode(0));
            System.out.println(EnumExample.getValueByCode(0));
            System.out.println(EnumExample.getCodeByValue("男"));
            System.out.println(EnumExample.getEnumExampleByCode(1));
            System.out.println(EnumExample.getValueByCode(1));
            System.out.println(EnumExample.getCodeByValue("女"));
            System.out.println(EnumExample.getEnumExampleByCode(2));
            System.out.println(EnumExample.getValueByCode(2));
            System.out.println(EnumExample.getCodeByValue("未知"));
            System.out.println(EnumExample.getEnumExampleByCode(3));
            System.out.println(EnumExample.getValueByCode(3));
            System.out.println(EnumExample.getCodeByValue("XXX"));
    
    • 结果


    相关文章

      网友评论

          本文标题:Spring Boot 25 -- enum 枚举的使用

          本文链接:https://www.haomeiwen.com/subject/ztavmctx.html