java 枚舉enum的用法(與在switch中的用法)
實際開發(fā)中,很多人可能很少用枚舉類型。更多的可能使用常量的方式代替。但枚舉比起常量來說,含義更清晰,更容易理解,結(jié)構(gòu)上也更加緊密??雌渌说牟┪亩己茉敿?xì),長篇大論的,這里理論的東西不說了,一起看看在實際開發(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中使用通常需要先獲取枚舉類型才判斷,因為case中是常量或者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代碼的時候,前面3中經(jīng)常用,但是第4種類型沒有使用過,于是嘗試使用枚舉類型來學(xué)些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,構(gòu)造方法中定義的兩個變量,分別是value和desc,value和desc分別對應(yīng)枚舉顏色中的key和value。 提供了一個靜態(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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis測試報錯:Cannot?determine?value?type?from?string?&a
這篇文章主要給大家介紹了關(guān)于MyBatis測試報錯:Cannot?determine?value?type?from?string?'xxx'的解決辦法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
java斷點(diǎn)續(xù)傳功能實例(java獲取遠(yuǎn)程文件)
本文介紹了一種利用 Java 來實現(xiàn)斷點(diǎn)續(xù)傳的方法。2013-12-12
SpringBoot2.x入門教程之引入jdbc模塊與JdbcTemplate簡單使用方法
這篇文章主要介紹了SpringBoot2.x入門教程之引入jdbc模塊與JdbcTemplate簡單使用方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Java后臺與微信小程序的數(shù)據(jù)交互實現(xiàn)
這篇文章主要介紹了Java后臺與微信小程序的數(shù)據(jù)交互實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

