Java如何获取枚举类型的值

作者:Henicr

这篇文章主要介绍了Java如何获取枚举类型的值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java获取枚举类型的值

public enum EasyExcelStyleType {
    NONE("默认样式", 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反射获取枚举值

先说下枚举类的结构:

枚举类中有许多枚举常量,枚举常量由枚举类中各个字段组成,更确切的说,枚举常量由构造方法入参字段构成。

所以如果要获取枚举常量中的值,首先需要使用class的getEnumConstants()方法获取枚举类中所有的枚举常量,然后使用类中对应的方法,得到常量中包含字段的值。

代码如下:

枚举类代码示例

package com.ecarx.jsk.jdk.poi;
public enum ResultCode {
    CODE_5200("8200", "认证失败"),
    CODE_5201("8201", "用户不存在"),
    CODE_5202("8202", "Token验证失败"),
    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.调用对应方法,得到枚举常量中字段的值
            System.out.println("code=" + getCode.invoke(obj) + "; name=" + getName.invoke(obj));

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
  • SpringBoot使用Validator进行参数校验实战教程(自定义校验,分组校验)
    SpringBoot使用Validator进行参数校验实战教程(自定义校验,分组校验)
    2023-07-07
  • SpringMVC中的@RequestMapping注解的使用详细教程
    SpringMVC中的@RequestMapping注解的使用详细教程
    2023-07-07
  • Spring Retry实现重试机制的示例详解
    Spring Retry实现重试机制的示例详解
    2023-07-07
  • 利用java判断质数的3种方法代码示例
    利用java判断质数的3种方法代码示例
    2023-07-07
  • Java之遍历枚举值问题
    Java之遍历枚举值问题
    2023-07-07
  • Java如何获取枚举类型的值
    Java如何获取枚举类型的值
    2023-07-07
  • java读取枚举类的值转成list和map方式
    java读取枚举类的值转成list和map方式
    2023-07-07
  • Java垃圾回收jconsole分析
    Java垃圾回收jconsole分析
    2023-07-07
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2023 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号