欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年10月09日 15:52:24   作者:Gogym  
這篇文章主要介紹了java 枚舉enum的用法(與在switch中的用法),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

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

看看枚舉類

/**
 * 操作碼類
 * @author kokJuis
 * @version 1.0
 * @date 2017-3-6
 */
public enum Code {
 
 SUCCESS(10000, "操作成功"), 
 FAIL(10001, "操作失敗"), 
 
 
 private int code;
 private String msg;
 
 //為了更好的返回代號和說明,必須呀重寫構(gòu)造方法
 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;
 } 
 
 // 根據(jù)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();
//獲取代碼對應(yīng)的信息
String msg=Code.SUCCESS.getMsg();
 
//在switch中使用通常需要先獲取枚舉類型才判斷,因?yàn)閏ase中是常量或者int、byte、short、char,寫其他代碼編譯是不通過的
 
int code=Code.SUCCESS.getCode(); 
switch (Code.getByValue(code)) {
 
 case SUCCESS:
 //......
 break;
 
 case FAIL:
 //......
 break; 
}

補(bǔ)充知識:Java Switch支持的數(shù)據(jù)類型及 枚舉在Switch case中的使用

最近在學(xué)習(xí)Groovy,發(fā)現(xiàn)Groovy中的Switch case 比Java中的Switch case強(qiáng)大,于是了解了Java中的Switch case支持的數(shù)據(jù)類型是有限的,包括int,char,String 和enum四種類型。

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

1、先定一個(gè)枚舉類型:

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,構(gòu)造方法中定義的兩個(gè)變量,分別是value和desc,value和desc分別對應(yīng)枚舉顏色中的key和value。 提供了一個(gè)靜態(tài)方法,來根據(jù)傳入的類型來獲取對應(yīng)的枚舉值。

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中的用法)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中如何正確定義字符串

    Java中如何正確定義字符串

    這篇文章主要給大家介紹了關(guān)于Java中如何正確定義字符串的相關(guān)資料,在Java中定義一個(gè)字符串最簡單的方法是用雙引號把它包圍起來,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • MyBatis測試報(bào)錯(cuò):Cannot?determine?value?type?from?string?'xxx'的解決辦法

    MyBatis測試報(bào)錯(cuò):Cannot?determine?value?type?from?string?&a

    這篇文章主要給大家介紹了關(guān)于MyBatis測試報(bào)錯(cuò):Cannot?determine?value?type?from?string?'xxx'的解決辦法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Java中序列化與反序列化的定義及代碼示例

    Java中序列化與反序列化的定義及代碼示例

    序列化是將對象狀態(tài)轉(zhuǎn)換為可存儲或傳輸格式的過程,反序列化則是將存儲或傳輸格式恢復(fù)為原始對象的逆過程,這篇文章主要介紹了Java中序列化與反序列化的相關(guān)資料,需要的朋友可以參考下
    2024-10-10
  • java斷點(diǎn)續(xù)傳功能實(shí)例(java獲取遠(yuǎn)程文件)

    java斷點(diǎn)續(xù)傳功能實(shí)例(java獲取遠(yuǎn)程文件)

    本文介紹了一種利用 Java 來實(shí)現(xiàn)斷點(diǎn)續(xù)傳的方法。
    2013-12-12
  • java判斷字符串包含某個(gè)字符的實(shí)例方法

    java判斷字符串包含某個(gè)字符的實(shí)例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于java判斷字符串包含某個(gè)字符的實(shí)例方法,有需要的朋友們學(xué)習(xí)下。
    2019-12-12
  • Java三大特性之封裝詳解

    Java三大特性之封裝詳解

    面向?qū)ο缶幊陶Z言是對客觀世界的模擬,客觀世界里成員變量都是隱藏在對象內(nèi)部的,外界無法直接操作和修改。?封裝可以被認(rèn)為是一個(gè)保護(hù)屏障,防止該類的代碼和數(shù)據(jù)被其他類隨意訪問。本文將來和大家詳細(xì)說說Java中的封裝,需要的可以了解一下
    2022-10-10
  • 基于Eclipce配置Spring Boot過程圖解

    基于Eclipce配置Spring Boot過程圖解

    這篇文章主要介紹了基于Eclipce配置Spring Boot過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • IDEA中配置Java反編譯工具javap -c的使用

    IDEA中配置Java反編譯工具javap -c的使用

    本文主要介紹了IDEA中配置Java反編譯工具javap -c的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringBoot2.x入門教程之引入jdbc模塊與JdbcTemplate簡單使用方法

    SpringBoot2.x入門教程之引入jdbc模塊與JdbcTemplate簡單使用方法

    這篇文章主要介紹了SpringBoot2.x入門教程之引入jdbc模塊與JdbcTemplate簡單使用方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java后臺與微信小程序的數(shù)據(jù)交互實(shí)現(xiàn)

    Java后臺與微信小程序的數(shù)據(jù)交互實(shí)現(xiàn)

    這篇文章主要介紹了Java后臺與微信小程序的數(shù)據(jù)交互實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論