美文网首页
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 枚举的使用

    一、说明 在 java 编程过程中,我们通常需要定义一些固定数量的常量,在 jdk1.5 以前,通常的做法是定义一...

  • Python_枚举

    一、枚举 Enum类 Python中所有枚举类型都是enum模块下的Enum类的子类。 枚举中的标识最好全部使用大...

  • 枚举学习

    java enum枚举类 enum(枚举)类介绍 **java枚举类是一组预定义常量的集合,使用enum关键字声明...

  • Java核心类-枚举类

    Java 进阶——枚举enum使用小结及使用枚举替代你的常量类 通过enum定义的枚举类,和其他的class没有任...

  • Enum学习使用

    1.Enum枚举定义 2.枚举使用

  • iOS 枚举

    iOS 枚举 使用typedef NS_ENUM 用法: 常用三种方式,普通使用推荐枚举NS_ENUM方式,如果需...

  • 枚举

    一、概念: 实例有限而且固定的类,在java里被称为枚举类。 二、通过enum实现枚举类 使用enum定义的枚举类...

  • Swift枚举和结构体(Enumerations and Str

    不错的参考: Enum进阶 使用enum创建枚举,像类和其他所有类型那样,枚举可以有方法,供访问。 再看一个枚举...

  • ios高效开发-正确的使用枚举(Enum)

    ios高效开发-正确的使用枚举(Enum)

  • C#魔将-lesson_07-枚举

    枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚...

网友评论

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

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