目录
1.枚举
枚举是在 JDK 1.5 引⼊的,主要是⽤来表示⼀组相同业务的值,⽐如我们要实现卖⻋的程序,我们要定 义⼀组颜⾊来穷举这辆⻋所提供的所有颜⾊,在没有枚举之前,我们是这样实现的:
public static int final RED = 1;
public static int final GREEN = 2;
public static int final BLACK = 3;
以上代码存在的主要问题有以下 3 个:
1. 代码可读性低,⽐如,当我们看到数字 2 时,并不能准确的知道它代表的具体是什么颜⾊,我们要 去代码⾥⾯查。
2. 参数传递很容易出错,以上代码类型为 int,所以在传递时理论上是可以接受所有的 int 值的,但只 有部分值是有效的颜⾊,所有很容易传递值出错。
3. 写法不够优雅,在外层(外边类)调⽤时,看到的都是⼀个个魔法数字,很让⼈很疑惑。 但有了枚举之后,我们就可以使⽤以下代码来组织所有的颜⾊了:
public enum ColorEnum {
//枚举的命名格式,所有的枚举值的使用全部用大写字母的形式定义
RED, GREEN, BLACK;
}
它的优点有以下⼏个:
1. 增强了代码的可读性。
2. 减少了传递参数的错误概率。
3. switch 判断更⽅便,语法清晰。
4. 代码⾜够简洁、优雅。
1.2 枚举常⽤⽅法
(1)values() 使⽤
以数组形式返回枚举类型的所有成员。
private static void eachEnum(){
ColorEnum[] arrs = ColorEnum.values();
for (ColorEnum item : arrs){
System.out.println(item);
}
}
(2)ordinal() 使⽤
获取枚举成员的索引位置。
private static void eachEnum(){
ColorEnum[] arrs = ColorEnum.values();
for (ColorEnum item : arrs){
int enumIdx = item.ordinal();
System.out.println(item + ":" + enumIdx);
}
}