java语言中一个类型叫做enum,是一个枚举类型,C、C++中也都有,是一种方便我们定义常量的类!说得再多都显苍白,让我们来看源码,编译器是怎么解释的!
先看demo:
public enum Test {
GetSessionId("getSessionId"), GetCheckCode("getCheckCode");// 调用两次构造方法
private final String action;
private Test(String action) {
this.action = action;
}
public String getAction() {
return action;
}
public static void main(String[] args) {
String string = GetSessionId.getAction();// 得到值
if ("getSessionId".equals(string)) {
System.out.println(true);
}
}
}
再看javap,反编译.class的结果:
public final class effective_java.Test extends java.lang.<strong><span style="font-size:18px;background-color: rgb(51, 51, 153);">Enum<effective_java.Test></span></strong> {
public <span style="font-size:18px;"><strong style="background-color: rgb(102, 0, 204);">static final</strong></span> effective_java.Test GetSessionId;
public <strong><span style="font-size:18px;background-color: rgb(102, 0, 204);">static final</span></strong> effective_java.Test GetCheckCode;
static {
};
public java.lang.String getAction();
public static void main(java.lang.String[]);
public static effective_java.Test[] values();
public static effective_java.Test valueOf(java.lang.String);
}
现在看来enum简单多了吧,enum就是一个继承自Enum,封装了常量,并提供一些方法的类。但是如何对性能要求高的话,还是不要使用enum,虽然写起来简单,但是是用性能换来的!