简介
Enum,Java中的一种引用数据类型。
使用示例
public enum AccountType {
NO_PAY(0,"非付费"),
NORMAL(1,"普通会员"),
SENIOR(2,"高级会员"),
CUSTOM_MADE(3,"精品定制会员"),
BUSINESS(4,"运营版本会员");
private int num;
private String name;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
AccountType(int num, String name){
this.num = num;
this.name = name;
}
public static int getNumByName(String name) {
for(AccountType accountType : AccountType.values()) {
if(accountType.getName().equals(name)) {
return accountType.getNum();
}
}
return 0;
}
public static String getNameByNum(int num) {
for(AccountType accountType : AccountType.values()) {
if(accountType.getNum() == num)
return accountType.getName();
}
return null;
}
}
特点
- 枚举类型是单例的。
- 所有枚举类型都继承了java.lang.Enum类,所以它不能在继承任何其它类,可以实现接口。
- 每个枚举类型都有一个静态的values()方法,它将返回一个包含全部枚举值的数组。
- 将所有枚举值列在开头,每个枚举值使用 , 隔开,所有枚举值列完之后使用 ; 结束。
- 枚举中的 ordinal() 用于获取枚举值在枚举中的顺序,以 0 开始。
使用场景
- 一个变量只能取某几个值,用户看的是文字,数据库存的数字。
- 用于switch中。使代码更加清晰。