java Enum 枚举
简介
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"));