常规用法
在Java中,被 enum
(enumeration)关键字修饰的类型就是枚举类型,是一组固定选项,代替整数代码常量选项,提供类型安全的选项,例如:
public enum TypeEnum {
TYPE_IMAGE,
TYPE_VIDEO,
}
如果枚举不添加任何方法,枚举值默认为从0开始的有序数值。以 TypeEnum 枚举类型举例,它的枚举常量依次为
TYPE_IMAGE:0,TYPE_VIDEO:1
每个选项,本质是 TypeEnum 类型的实例,所以刚才的枚举的代码等价于调用了两次Enum(String name, int ordinal))
,即
new Enum<TypeEnum>("TYPE_IMAGE", 0);
new Enum<TypeEnum>("TYPE_VIDEO", 1);
遍历枚举
for(TypeEnum t:TypeEnum.values()){
Log.d("TypeEnum",""+t+":"+t.ordinal()+","+t.name());
}
查看运行结果
作为switch的判断条件
使用枚举作为 switch 语句判断条件能让我们的代码可读性更强:
TypeEnum type = TypeEnum.TYPE_IMAGE;
switch (type) {
case TYPE_IMAGE:
Log.d("TypeEnum", "图片类型");
break;
case TYPE_VIDEO:
Log.d("TypeEnum", "视频类型");
break;
default:
Log.d("TypeEnum", "类型错误");
break;
}
运行结果
给 enum 自定义属性和方法
枚举类型的构造函数是私有的 private,所以不能通过 New 来创建枚举类型,正因如此才保证了枚举数据类型的安全,不会被更改
public enum Color {
RED("red",1),
YELLOW("yellow",2),
BLUE("blue",3);
private String name;
private int index;
Color(String name