在項目中我們常常會碰到一些常量之類的死數據,但是爲了方便管理,我們最好都是不要直接寫死,不然等到要修改的時候就只能一條條的修改,那麼我們有沒有更加方便的方式去保存這些死數據呢,這裏我們就可以用到枚舉了
枚舉的特點:
- 是一個特殊的類,擁有編譯安全、完全單利、和線程的安全
而且我們也可以寫一個接口枚舉例如:
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