从设计的角度考虑,别人再引用你的程序时:
枚举可以限定参数的个数,对调用者的行为能更加严格地进行控制。把一些运行期的参数检查放到了编译期,做到这点是一个很大的进步。
从静态变量的角度考虑,自己编写,自己用 直接用 public static final ...来定义变量即可
反编译 枚举类:
http://unmi.cc/understand-java-enum-with-bytecode/
public enum Season { SPRING{public String getName(){return "1";}}, WINTER{public String getName(){return "2";}}; public abstract String getName(); }
public enum Color { RED("1") , WHITE("2"); private final String value; /** * 构造器默认也只能是private, 从而保证构造函数只能在内部使用 * */ private Color(String value) { this.value = value; } public String getValue() { return value; } }
ENUM 成员 编译后极为内部类