前言: Java 5之前没有提供枚举类型,尽管可以通过声明静态常量(final static变量)替枚举,但是仍然很多Java程序员期待能有类似其他语言中的枚举类型。Java 5之后提供了枚举类型,Java枚举类型本质上是一种继承java.lang.Enum类,是引用数据类型,因此也称为“枚举类”。本章介绍Java枚举类。
1 枚举概述
在C和Objective-C等其他语言中,枚举用来管理一组相关常量的集合,使用枚举可以提高程序的可读性,使代码更清晰且更易于维护。
在Java 5之前没有提供枚举类型,可以通过声明静态常量(final static变量)替代枚举常量,例如想声明一组常量表示一周中的5个工作日,那么Java 5之前实现代码如下
通常在接口中声明一组静态常量,当然也可以在一般类中声明一组静态常量。这些常量往往都是int类型,这是为了以后方便使用switch语句进行判断。
调用代码如下
从上述代码中直接使用这些常量。但这种方式还存在一些问题:
- 类型不安全。代码第①行是声明工作日变量day,day是整数类型,程序执行过程中很有可能给day变量传入一个任意的整数值,可能导致程序出现错误。
- 程序不方便调试。在程序调试时,如果通过日志输出day值,那么只能看到0~4之间的数值,程序员