Java靈活使用枚舉表示一組字符串的操作
更新時(shí)間:2021年06月08日 11:35:29 作者:思影影思
這篇文章主要介紹了Java靈活使用枚舉表示一組字符串的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
Java枚舉表示一組字符串
public class HelloWorld {
public static void main(String []args) {
System.out.println("Hello World!");
System.out.println(Season.SPRING.toString());
System.out.println(Season.SPRING.value());
}
}
enum Season {
SPRING("spring"), SUMMER("summer"), AUTUMN("autumn"), WINTER("winter");
public final String value;
private Season(String value) {
this.value = value;
}
public String value() {
return this.value;
}
}
程序輸出結(jié)果如下:
Hello World!
SPRING
spring
Java枚舉類的正確使用
規(guī)范使用枚舉類
public enum StatEnum {
SUCCESS(1,"成功"),
FAILD(0,"失敗"),
REPEAT(-1,"重復(fù)"),
INNER_ERROR(-2,"系統(tǒng)異常"),
DATA_ERROR(-3,"數(shù)據(jù)異常");
private int state;
private String stateInfo;
StatEnum(int state, String stateInfo) {
this.state = state;
this.stateInfo = stateInfo;
}
public int getState() {
return state;
}
public String getStateInfo() {
return stateInfo;
}
public static StatEnum stateOf(int index){
for(StatEnum state: values()){
if(state.getState() == index){
return state;
}
}
return null;
}
}
枚舉搭配接口一起使用
// 定義接口
public interface CodeEnum {
Integer getCode();
String getMessage();
}
// 定義枚舉
public enum StatusEnum implements CodeEnum {
SUCCESS(0, "成功"),
DAILD(1, "失敗");
private Integer code;
private String message;
StatusEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
@Override
public Integer getCode() {
return code;
}
@Override
public String getMessage() {
return message;
}
}
// 定義工具類
public class EnumUtil {
public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
for (T each: enumClass.getEnumConstants()) {
if (code.equals(each.getCode())) {
return each;
}
}
return null;
}
}
使用:
EnumUtil.getByCode(0, StatusEnum.class).getMessage() EnumUtil.getByCode(1, StatusEnum.class).getCode()
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot整合Elasticsearch實(shí)現(xiàn)索引和文檔的操作方法
Elasticsearch 基于 Apache Lucene 構(gòu)建,采用 Java 編寫,并使用 Lucene 構(gòu)建索引、提供搜索功能,本文分步驟通過(guò)綜合案例給大家分享SpringBoot整合Elasticsearch的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2021-05-05
MyBatis獲取插入記錄的自增長(zhǎng)字段值(ID)
本文分步驟給大家介紹了MyBatis獲取插入記錄的自增長(zhǎng)字段值的方法,在文中給大家提到了mybatis返回插入數(shù)據(jù)的自增長(zhǎng)id,需要的朋友可以參考下2017-11-11
java Spring MVC4環(huán)境搭建實(shí)例詳解(步驟)
spring WEB MVC框架提供了一個(gè)MVC(model-view-controller)模型-視圖-控制器的結(jié)構(gòu)和組件,利用它可以開(kāi)發(fā)更靈活、松耦合的web應(yīng)用。MVC模式使得整個(gè)服務(wù)應(yīng)用的各部分(控制邏輯、業(yè)務(wù)邏輯、UI界面展示)分離開(kāi)來(lái),使它們之間的耦合性更低2017-08-08
Java將對(duì)象保存到文件中/從文件中讀取對(duì)象的方法
下面小編就為大家?guī)?lái)一篇Java將對(duì)象保存到文件中/從文件中讀取對(duì)象的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
一篇文章帶你了解JAVA面對(duì)對(duì)象之繼承與修飾符
這篇文章主要介紹了Java面向?qū)ο缶幊讨惖睦^承,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java面向?qū)ο缶幊填惖母拍?、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下2021-08-08

