java Enum 枚举
原创
©著作权归作者所有:来自51CTO博客作者mb6300b232419d1的原创作品,请联系作者获取转载授权,否则将追究法律责任
简介
java 枚举是一个特殊的类,一般表示常量,比如一周7天,一年4个季节。
示例
enum LevelEnum {
LOW,
MEDIUM,
HIGH
}
遍历
public class EnumTest {
public static void main(String[] args) {
LevelEnum myVal = LevelEnum.LOW;
System.out.println(myVal);
// for 循环
for (LevelEnum level : LevelEnum.values()) {
System.out.println(level + " name->" + level.name() + " ordinal->" + level.ordinal());
}
}
}
输出
LOW
LOW name->LOW ordinal->0
MEDIUM name->MEDIUM ordinal->1
HIGH name->HIGH ordinal->2
Enum定义
public abstract class Enum<E extends Enum<E>>
implements Comparable<E>, Serializable {
/**
* The name of this enum constant, as declared in the enum declaration.
* Most programmers should use the {@link #toString} method rather than
* accessing this field.
*/
private final String name;
...
}
enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Serializable 和 java.lang.Comparable 两个接口。
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:
- values() 返回枚举类中所有的值
- ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样
- valueOf()方法返回指定字符串值的枚举常量
如
System.out.println(LevelEnum.valueOf("MEDIUM"));