枚举(Enum)小记

最近在做一个SSM项目,里边用到了枚举,就看了一些关于枚举的文章,在这里记录一下.

1. 枚举这一关键字实在java SE5中引入的,在此之前想要使用枚举很麻烦.
2. 我们知道枚举和常量比较像,那么与常量对比,这种方式的优势在哪里呢?
2.1 首先枚举是一个类,在使用的时候可以进行编译时检查,避免出错.
2.2 预先记录那些值可以被接受,避免接受无效值.

public enum PizzaStatus {
    ORDERED,
    READY, 
    DELIVERED; 
}

2.3我们把需要的的常量值放在了枚举类里边(我们在项目里边经常定义一个包common用来存放常量和全局异常),那么我们如何使用这些常量呢?

Java 中的每一个枚举都继承自 java.lang.Enum 类。当定义一个枚举类型时,每一个枚举类型成员都可以看作是 Enum 类的实例,这些枚举成员默认都被 final、public, static 修饰,当使用枚举类型成员时,直接使用枚举名称调用成员即可。

使用 类名.枚举定义的常量名 就可以获得相应的常量
PizzaStatus.ORDRED
PizzaStatus.READY
PizzaStatus.DELIVERED

3.我们经常会如何使用枚举呢?

3.1.自定义枚举方法(这在项目中经常使用):我们可以在枚举中定义属性,方法还有构造函数.

public enum ResponseCode {

    SUCCESS(0, "SUCCESS"),
    ERROR(1, "ERROR"),
    NEED_LOGIN(10, "NEED_LOGIN"),
    ILLEGAL_ARGUMENT(2, "ILLEGAL_ARGUMENT");

    private final int code;
    private final String desc;


    ResponseCode(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

}

3.2 枚举往往搭配着switch语句一起使用.

4.EnumSet and EnumMap

关于这两个类,目前我还没有研究,需要的小伙伴可以去下面的链接看一下.
了解EnumSet and EnumMap点这里

关于枚举先说这么多,现在对他的理解还存在与表面,以后有新的理解会继续更新.

你可能感兴趣的:(枚举(Enum)小记)