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中同类对象之间的compareTo()和compare()方法对比分析
这篇文章主要介绍了java中同类对象之间的compareTo()和compare()方法对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09如何使用Jackson和JSON Pointer查询解析任何JSON节点
本文介绍了JSON Pointer是字符串表达式,可以非常方便解析复杂JSON节点值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09spring中jdbcTemplate.batchUpdate的几种使用情况
本文主要介绍了spring中jdbcTemplate.batchUpdate的几种使用情况,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-04-04SpringBoot内嵌tomcat处理有特殊字符转义的问题
这篇文章主要介绍了SpringBoot内嵌tomcat处理有特殊字符转义的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-06-06springboot结合mybatis-plus基于session模拟短信注册功能
本文主要介绍了springboot结合mybatis-plus基于session模拟短信注册功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-11-11
最新评论