在项目中我们常常会碰到一些常量之类的死数据,但是为了方便管理,我们最好都是不要直接写死,不然等到要修改的时候就只能一条条的修改,那么我们有没有更加方便的方式去保存这些死数据呢,这里我们就可以用到枚举了
枚举的特点:
- 是一个特殊的类,拥有编译安全、完全单利、和线程的安全
而且我们也可以写一个接口枚举例如:
public interface IEnum {
String getCode();
Integer getType();
}
之后对这个写一个接口实现类
//我就写一个游戏类型的枚举
public enum GameTypeEnum implements IEnum{
/**
* 网络游戏 1
* 手机游戏 2
* 网页游戏 3
* PC游戏 4
*/
ONLINEGAME("ONLINEGAME",1),
PHONEGAME("PHONEGAME",2),
WEBGAME("WEBGAME",3),
PCGAME("PCGAME",4);
/**
* 枚举标识码
*/
private String code;
/**
* 枚举细节描述
*/
private Integer type;
@Override
public String getCode(){
return code;
}
@Override
public Integer getType(){
return type;
}
/**
* 构造方法
* @param code
* @param type
*/
GameTypeEnum(String code, Integer type){
this.code = code;
this.type = type;
}
/**
* 获取枚举的方法
* @param code 传入枚举的code
* @return 返回枚举
*/
public static GameTypeEnum getInstance(String code){
for (GameTypeEnum value : GameTypeEnum.values()){
if(value.getCode().equals(code)){
return value;
}
}
return null;
}
}
在使用的时候我们就可以直接调用获取枚举细节的方法,获取到我们要的写死的值
注意事项
- 枚举不能被new 、 反射 、序列化等操作
- 枚举不能被继承
- 枚举是线程安全的
- 枚举默认继承Enum