溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 枚舉enum的用法(與在switch中的用法)

發布時間:2020-10-21 23:26:03 來源:腳本之家 閱讀:170 作者:Gogym 欄目:開發技術

實際開發中,很多人可能很少用枚舉類型。更多的可能使用常量的方式代替。但枚舉比起常量來說,含義更清晰,更容易理解,結構上也更加緊密??雌渌说牟┪亩己茉敿?,長篇大論的,這里理論的東西不說了,一起看看在實際開發中比較常見的用法,簡單明了。

看看枚舉類

/**
 * 操作碼類
 * @author kokJuis
 * @version 1.0
 * @date 2017-3-6
 */
public enum Code {
 
 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=Code.SUCCESS.getCode();
//獲取代碼對應的信息
String msg=Code.SUCCESS.getMsg();
 
//在switch中使用通常需要先獲取枚舉類型才判斷,因為case中是常量或者int、byte、short、char,寫其他代碼編譯是不通過的
 
int code=Code.SUCCESS.getCode(); 
switch (Code.getByValue(code)) {
 
 case SUCCESS:
 //......
 break;
 
 case FAIL:
 //......
 break; 
}

補充知識:Java Switch支持的數據類型及 枚舉在Switch case中的使用

最近在學習Groovy,發現Groovy中的Switch case 比Java中的Switch case強大,于是了解了Java中的Switch case支持的數據類型是有限的,包括int,char,String 和enum四種類型。

之前寫android代碼的時候,前面3中經常用,但是第4種類型沒有使用過,于是嘗試使用枚舉類型來學些Switch case,代碼如下,做個記錄:

1、先定一個枚舉類型:

package com.lwd; 
public enum LwdColor {
 
  yello(0,"#0xff00ff00"),
  green(1,"#0xff0000ff"),
  blue(2,"#0xffffff00");
 
  private int value;
 
  public int getValue() {
    return value;
  }
 
  public void setValue(int value) {
    this.value = value;
  }
 
  public String getDesc() {
    return desc;
  }
 
  public void setDesc(String desc) {
    this.desc = desc;
  }
 
  private String desc;
 
  LwdColor(int value,String desc){
    this.value = value;
    this.desc = desc;
  }
 
  public static LwdColor getColorType(int type){
    for(LwdColor lwdColors:LwdColor.values()){
      if(lwdColors.getValue() == type){
        return lwdColors;
      }
    }
    return null;
  } 
}

枚舉類中定義了3種顏色,分別是yello、green、blue,構造方法中定義的兩個變量,分別是value和desc,value和desc分別對應枚舉顏色中的key和value。 提供了一個靜態方法,來根據傳入的類型來獲取對應的枚舉值。

2、在Switch case中使用如下:

package com.lwd; 
public class TestJava { 
  public static void main(String[] args){ 
    LwdColor lwdColor = LwdColor.getColorType(0); 
    switch (lwdColor){
 
      case yello:
        System.out.println( lwdColor.getValue() + "的顏色值 == " + lwdColor.getDesc());
         break;
    }
 
   } 
}

以上這篇java 枚舉enum的用法(與在switch中的用法)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女