一、定义
枚举类的定义步骤如下(JDK5后可以直接使用enum关键字来定义):
1.创建Enum类,常量的定义必须放在文件的首部
即枚举的常量必须放在首部,每个枚举常量之间以逗号分割,定义完最后一个常量以分号结束。但是通常先不写它,而是先写后面的枚举构造方法,如下:
SUCCESS(0, "成功"),
SYSTEMERROR(-1, "系统错误"),
PRIMARY_SCHOOL(100, "你可能还在读小学"),
MEDIUAL_SCHOOL(101, "你可能还在读初中")
;
2. 定义枚举类的属性常量
比如像上面的就定义了含有两个常量属性的枚举类,所以要进行一个定义并且提供一个私有的构造方法
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
3. 为各个属性常量提供getter方法,不需要setter(常量不许与setter)
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
到这里基本枚举类就已经定义完成了,当然也可以重写toString()方法来打印信息,但通常不会这样写
@Override
public String toString() {
// TODO Auto-generated method stub
return "ResultEnum [ResultEnumCode=" + code + ", msg=" + msg + "]";
}
二、常用方法
枚举类的常用方法(比如我们定义了一个枚举类叫做ResultEnum(这是一个类!)):
1. values()方法
value()方法将会以数组(这个数组的类型就是枚举类的类型,这里就是ResultEnum[])的形式返回这个枚举类中所有定义的常量,比如
ResultEnum[] result = ResultEnum.values();
for(ResultEnum r:result) {
System.out.println(r);
}
/*
这里将会输出在枚举类首部定义所有常量的名字:
SUCCESS
SYSTEMERROR
PRIMARY_SCHOOL
MEDIUAL_SCHOOL
*/
2.valueOf(String name)
valueOf(String name)方法会将对应的枚举常量找出来,这里的name只能是SUCCESS、SYSTEMERROR、PRIMARY_SCHOOL、MEDIUAL_SCHOOL这几个在枚举类中定义的常量名,比如
String success = ResultEnum.valueOf("SUCCESS");