Java如何获取枚举类型的值

 更新时间:2023年07月24日 14:47:11   作者: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));
        }
    }

输出结果

总结

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

相关文章

  • Java如何实现kaptcha网页验证码验证

    Java如何实现kaptcha网页验证码验证

    在做关于SSM项目之商铺系统时,了解到了kaptcha实现网页验证码验证,感觉就很有趣,所以便开始学习记录了起来,复制粘贴即可用
    2025-01-01
  • Java注解详解及实现自定义注解的方法

    Java注解详解及实现自定义注解的方法

    这篇文章主要介绍了Java注解详解及实现自定义注解的方法,本文给大家介绍了jdk中预定义的一些注解及自定义注解的相关知识,需要的朋友可以参考下
    2022-06-06
  • 基于Java POI实现动态列Excel导出的通用方法

    基于Java POI实现动态列Excel导出的通用方法

    在企业级开发中,Excel导出功能是常见需求,当面对前端动态传参、列数不确定的场景时,编写通用的动态列导出方法能显著提升开发效率,本文将结合Java POI框架,详细解析如何实现支持多级表头、动态列求和及合并单元格的Excel导出功能,并提供完整代码示例与使用说明
    2025-07-07
  • C++ 虚函数与纯虚函数代码详解

    C++ 虚函数与纯虚函数代码详解

    本文主要介绍了C++ 虚函数与纯虚函数的使用与区别,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • springboot封装响应实体的实例代码

    springboot封装响应实体的实例代码

    这篇文章主要介绍了springboot封装响应实体,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Spring实现IoC和DI的方法详解

    Spring实现IoC和DI的方法详解

    IoC全称Inversion of Control (控制反转) ,这里的控制其实是控制权的意思,可以理解为对象的获取权力和方式发生了发转,DI依赖注⼊是⼀个过程,是指IoC容器在创建Bean时, 去提供运⾏时所依赖的资源,⽽资源指的就是对象,本文介绍了Spring实现IoC和DI的方法
    2024-08-08
  • SpringSecurity注销设置的方法

    SpringSecurity注销设置的方法

    这篇文章主要为大家详细介绍了SpringSecurity注销设置的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-09-09
  • Java程序初始化启动自动执行的三种方式

    Java程序初始化启动自动执行的三种方式

    这篇文章主要介绍了Java程序初始化启动自动执行的三种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Dubbo注册中心与服务发现详解

    Dubbo注册中心与服务发现详解

    本文全面介绍了Dubbo注册中心及服务发现机制,包括Zookeeper、Nacos、Multicast等多种注册中心的配置方法、高可用特性及其在接口级和应用级服务发现中的应用,支持多注册中心和高阶服务治理能力,实现微服务的动态扩容和流量管控
    2025-10-10
  • 一文详解Java etcd的应用场景及编码实战

    一文详解Java etcd的应用场景及编码实战

    etcd 是一个高度一致的分布式键值存储系统。本文旨在帮助大家理解etcd,从宏观角度俯瞰etcd全局,掌握etcd的基本操作技能,需要的可以参考一下
    2022-08-08

最新评论