Java如何獲取枚舉類型的值
Java獲取枚舉類型的值
枚舉類
public enum EasyExcelStyleType {
? ? NONE("默認(rèn)樣式", ExcelExportStylerDefaultImpl.class),
? ? BORDER("邊框樣式", ExcelExportStylerBorderImpl.class),
? ? COLOR("間隔行樣式", ExcelExportStylerColorImpl.class),
? ? ONE("自定義樣式一", EasyExcelStyle.class);
? ? EasyExcelStyleType(String str, Class<?> cla) {
? ? ?? ?// 傳遞屬性值
? ? ? ? this.str = str;
? ? ? ? this.cla = cla;
? ? }
?? ?// 屬性Getter,Setter方法
? ? private String str;
? ? private Class<?> cla;
? ? public String getStr() {
? ? ? ? return str;
? ? }
? ? public void setStr(String str) {
? ? ? ? this.str = str;
? ? }
? ? public Class<?> getCla() {
? ? ? ? return cla;
? ? }
? ? public void setCla(Class<?> cla) {
? ? ? ? this.cla = cla;
? ? }
}獲取方法
public static void main(String[] args) throws Exception {
? ? ? ? // 獲取屬性一(str)
? ? ? ? System.out.println(EasyExcelStyleType.valueOf("ONE").getStr());
? ? ? ? System.out.println(EasyExcelStyleType.ONE.getStr());
? ? ? ? // 獲取屬性二(cla)
? ? ? ? System.out.println(EasyExcelStyleType.valueOf("ONE").getCla());
? ? ? ? System.out.println(EasyExcelStyleType.ONE.getCla());
? ? }輸出

java反射獲取枚舉值
先說下枚舉類的結(jié)構(gòu):
枚舉類中有許多枚舉常量,枚舉常量由枚舉類中各個字段組成,更確切的說,枚舉常量由構(gòu)造方法入?yún)⒆侄螛?gòu)成。
所以如果要獲取枚舉常量中的值,首先需要使用class的getEnumConstants()方法獲取枚舉類中所有的枚舉常量,然后使用類中對應(yīng)的方法,得到常量中包含字段的值。
代碼如下:
枚舉類代碼示例
package com.ecarx.jsk.jdk.poi;
public enum ResultCode {
? ? CODE_5200("8200", "認(rèn)證失敗"),
? ? CODE_5201("8201", "用戶不存在"),
? ? CODE_5202("8202", "Token驗(yàn)證失敗"),
? ? CODE_5203("8203", "Token刷新失敗");
? ? private String code;
? ? private String name;
? ? private ResultCode(String code, String name) {
? ? ? ? this.code = code;
? ? ? ? this.name = name;
? ? }
? ? public String getCode() {
? ? ? ? return this.code;
? ? }
? ? public void setCode(String code) {
? ? ? ? this.code = code;
? ? }
? ? public String getName() {
? ? ? ? return this.name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
}利用反射獲取枚舉值代碼
? ? @Test
? ? public void getEnumValue() throws Exception {
? ? ? ? // 1.得到枚舉類對象
? ? ? ? Class<?> clz = ResultCode.class;
? ? ? ? // 2.得到所有枚舉常量
? ? ? ? Object[] objects = clz.getEnumConstants();
? ? ? ? Method getCode = clz.getMethod("getCode");
? ? ? ? Method getName = clz.getMethod("getName");
? ? ? ? for (Object obj : objects){
? ? ? ? // 3.調(diào)用對應(yīng)方法,得到枚舉常量中字段的值
? ? ? ? ? ? System.out.println("code=" + getCode.invoke(obj) + "; name=" + getName.invoke(obj));
? ? ? ? }
? ? }輸出結(jié)果

總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java如何實(shí)現(xiàn)kaptcha網(wǎng)頁驗(yàn)證碼驗(yàn)證
在做關(guān)于SSM項(xiàng)目之商鋪系統(tǒng)時,了解到了kaptcha實(shí)現(xiàn)網(wǎng)頁驗(yàn)證碼驗(yàn)證,感覺就很有趣,所以便開始學(xué)習(xí)記錄了起來,復(fù)制粘貼即可用2025-01-01
Java注解詳解及實(shí)現(xiàn)自定義注解的方法
這篇文章主要介紹了Java注解詳解及實(shí)現(xiàn)自定義注解的方法,本文給大家介紹了jdk中預(yù)定義的一些注解及自定義注解的相關(guān)知識,需要的朋友可以參考下2022-06-06
基于Java POI實(shí)現(xiàn)動態(tài)列Excel導(dǎo)出的通用方法
在企業(yè)級開發(fā)中,Excel導(dǎo)出功能是常見需求,當(dāng)面對前端動態(tài)傳參、列數(shù)不確定的場景時,編寫通用的動態(tài)列導(dǎo)出方法能顯著提升開發(fā)效率,本文將結(jié)合Java POI框架,詳細(xì)解析如何實(shí)現(xiàn)支持多級表頭、動態(tài)列求和及合并單元格的Excel導(dǎo)出功能,并提供完整代碼示例與使用說明2025-07-07
springboot封裝響應(yīng)實(shí)體的實(shí)例代碼
這篇文章主要介紹了springboot封裝響應(yīng)實(shí)體,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
Spring實(shí)現(xiàn)IoC和DI的方法詳解
IoC全稱Inversion of Control (控制反轉(zhuǎn)) ,這里的控制其實(shí)是控制權(quán)的意思,可以理解為對象的獲取權(quán)力和方式發(fā)生了發(fā)轉(zhuǎn),DI依賴注?是?個過程,是指IoC容器在創(chuàng)建Bean時, 去提供運(yùn)?時所依賴的資源,?資源指的就是對象,本文介紹了Spring實(shí)現(xiàn)IoC和DI的方法2024-08-08
Dubbo注冊中心與服務(wù)發(fā)現(xiàn)詳解
本文全面介紹了Dubbo注冊中心及服務(wù)發(fā)現(xiàn)機(jī)制,包括Zookeeper、Nacos、Multicast等多種注冊中心的配置方法、高可用特性及其在接口級和應(yīng)用級服務(wù)發(fā)現(xiàn)中的應(yīng)用,支持多注冊中心和高階服務(wù)治理能力,實(shí)現(xiàn)微服務(wù)的動態(tài)擴(kuò)容和流量管控2025-10-10
一文詳解Java?etcd的應(yīng)用場景及編碼實(shí)戰(zhàn)
etcd?是一個高度一致的分布式鍵值存儲系統(tǒng)。本文旨在幫助大家理解etcd,從宏觀角度俯瞰etcd全局,掌握etcd的基本操作技能,需要的可以參考一下2022-08-08

