1. 程式人生 > >列舉enum在switch中的用法

列舉enum在switch中的用法

實際開發中,很多人可能很少用列舉型別。
更多的可能使用常量的方式代替。但列舉比起常量來說,含義更清晰,更容易理解,結構上也更加緊密。

/**
 *列舉類
 */
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; }