Java 进阶——枚举enum使用小结及使用枚举替代你的常量类
通过enum
定义的枚举类,和其他的class
没有任何区别。
例如,我们定义的Color
枚举类:
public enum Color {
RED, GREEN, BLUE;
}
编译器编译出的class
大概就像这样:
// 继承自java.lang.Enum,标记为final class无法被继承
public final class Color extends Enum {
// 每个实例均为全局唯一:
public static final Color RED = new Color();
public static final Color GREEN = new Color();
public static final Color BLUE = new Color();
// private构造方法,确保外部无法调用new操作符:
private Color() {}
}
每个枚举的值都是class
实例,这些实例有一些方法:
-
name()
返回常量名,例如:
String s = Weekday.SUN.name(); // "SUN"
-
ordinal()
返回定义的常量的顺序,从0开始计数,例如:
int n = Weekday.MON.ordinal(); // 1
网友评论