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

Java如何獲取枚舉類型的值

 更新時(shí)間:2023年07月24日 14:47:11   作者:Henicr  
這篇文章主要介紹了Java如何獲取枚舉類型的值問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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è)字段組成,更確切的說,枚舉常量由構(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é)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java8升級到j(luò)ava17的兼容性分析與遷移指南

    java8升級到j(luò)ava17的兼容性分析與遷移指南

    這篇文章主要為大家詳細(xì)介紹了從?Java?8?升級到?Java?17?的詳細(xì)分析和遷移步驟,包括代碼修改建議,依賴更新和配置調(diào)整,有需要的小伙伴可以參考一下
    2025-04-04
  • 解決scala.collection.mutable.Map寫入的問題

    解決scala.collection.mutable.Map寫入的問題

    這篇文章主要介紹了解決scala.collection.mutable.Map寫入的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java中java.lang.ClassCastException異常原因以及解決方法詳解

    Java中java.lang.ClassCastException異常原因以及解決方法詳解

    這篇文章主要給大家介紹了關(guān)于Java中java.lang.ClassCastException異常原因以及解決方法的相關(guān)資料,ClassCastException從字面上看是類型轉(zhuǎn)換錯(cuò)誤,通常是進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí)候出的錯(cuò)誤,需要的朋友可以參考下
    2024-02-02
  • 基于Maven骨架創(chuàng)建JavaWeb項(xiàng)目過程解析

    基于Maven骨架創(chuàng)建JavaWeb項(xiàng)目過程解析

    這篇文章主要介紹了基于Maven骨架創(chuàng)建JavaWeb項(xiàng)目過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 一篇文章帶你入門java算術(shù)運(yùn)算符(加減乘除余,字符連接)

    一篇文章帶你入門java算術(shù)運(yùn)算符(加減乘除余,字符連接)

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2021-08-08
  • SpringBoot+Redis使用AOP防止重復(fù)提交的實(shí)現(xiàn)

    SpringBoot+Redis使用AOP防止重復(fù)提交的實(shí)現(xiàn)

    本文主要介紹了SpringBoot+Redis使用AOP防止重復(fù)提交的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Java中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)

    Java中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)

    下面小編就為大家?guī)硪黄狫ava中==符號與equals()的使用詳解(測試兩個(gè)變量是否相等)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java Atomic類及線程同步新機(jī)制原理解析

    Java Atomic類及線程同步新機(jī)制原理解析

    這篇文章主要介紹了Java Atomic類及線程同步新機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于分布式鎖(Redisson)的原理分析

    關(guān)于分布式鎖(Redisson)的原理分析

    這篇文章主要介紹了關(guān)于分布式鎖(Redisson)的原理,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Spring項(xiàng)目中Ordered接口的應(yīng)用之全局過濾器(GlobalFilter)的順序控制

    Spring項(xiàng)目中Ordered接口的應(yīng)用之全局過濾器(GlobalFilter)的順序控制

    在Spring框架,尤其是Spring Cloud Gateway或Spring WebFlux項(xiàng)目中,Ordered接口扮演著重要的角色,特別是在實(shí)現(xiàn)全局過濾器(GlobalFilter)時(shí),用于控制過濾器執(zhí)行的優(yōu)先級,下面將介紹如何在Spring項(xiàng)目中使用Ordered接口來管理Global Filter的執(zhí)行順序,需要的朋友可以參考下
    2024-06-06

最新評論