枚举类,用Enum关键字,其本质也是一个Class
例子:
public enum CC {
ERROR1(1, "参数异常"),
ERROR2(2, "查不到数据");
private final Integer code;
private final String msg;
public Integer getCode() {
return this.code;
}
public String getMsg() {
return this.msg;
}
CC(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}
用javap Class 反汇编工具查看实际执行情况
在class文件下,cmd命令执行 javap CC
public final class com.sy.CC extends java.lang.Enum<com.sy.CC> {
public static final com.sy.CC ERROR1;
public static final com.sy.CC ERROR2;
public static com.sy.CC[] values();
public static com.sy.CC valueOf(java.lang.String);
public java.lang.Integer getCode();
public java.lang.String getMsg();
static {};
}
可以看出,枚举实际上是一个final类型的class,里面有静态实例,实例是在静态代码块里面初始化的,需要构建私有构造方法。枚举日常项目中用来返回给前端错误信息。