列舉enum在switch中的用法
阿新 • • 發佈:2018-12-24
實際開發中,很多人可能很少用列舉型別。
更多的可能使用常量的方式代替。但列舉比起常量來說,含義更清晰,更容易理解,結構上也更加緊密。
/**
*列舉類
*/
public enum DemoCode {
SUCCESS(10000, "操作成功"),
FAIL(10001, "操作失敗"),
private int code;
private String msg;
//為了更好的返回代號和說明,必須重寫構造方法
private Code(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
// 根據value返回列舉型別,主要在switch中使用
public static Code getByValue(int value) {
for (Code code : values ()) {
if (code.getCode() == value) {
return code;
}
}
return null;
}
}
使用:
//獲取程式碼
int code=DemoCode.SUCCESS.getCode();
//獲取程式碼對應的資訊
String msg=DemoCode.SUCCESS.getMsg();
//在switch中使用通常需要先獲取列舉型別才判斷,因為case中是常量或者int、byte、short、char,寫其他程式碼編譯是不通過的
switch (DemoCode.getByValue(code)) {
case SUCCESS:
//......
break;
case FAIL:
//......
break;
}