简介

EnumUtils工具类, 用于读取枚举中的code和value值。

使用有限制, 枚举类必须提供 getCode 和  getValue 两个方法,例如 NODEFINE("未定义", "未定义");

api

  • 返回枚举类中的所有值 readEnum(Class<?> classes);
  • 根据输入的code, 取出对应的 value值 getValue(Class<?> classes, Object code);
  • 根据输入的value, 取出对应的 code值 getCode(Class<?> classes, Object value);

源码

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;/*** @公司名称:kk51* @作者:lud —— 2020年8月25日 上午10:30:39* @说明:EnumUtils工具类, 用于读取枚举中的code和value值* @说明:【PS: 使用有限制, 枚举类必须提供 getCode 和  getValue 两个方法】*/
public class EnumUtils {/*** 方法功能说明:@1.配合枚举类,返回枚举类中的所有值* 创建时间:2020年8月25日 下午12:28:48 --lud*/public static List<EnumEntity> readEnum(Class<?> classes) throws Exception{List<EnumEntity> result = new ArrayList<EnumEntity>();if (classes.isEnum()) {EnumUtils enumUtils = new EnumUtils();EnumEntity enumEntity;Object[] objects = classes.getEnumConstants();for (Object object : objects) {Method getValue = object.getClass().getDeclaredMethod("getValue");Method getCode = object.getClass().getDeclaredMethod("getCode");enumEntity = enumUtils.new EnumEntity();enumEntity.setCode(getCode.invoke(object).toString());enumEntity.setValue(getValue.invoke(object).toString());result.add(enumEntity);}}return result;}/*** 方法功能说明:@1.配合枚举类,根据输入的code, 取出对应的 value值* 创建时间:2020年8月25日 上午9:54:04 --lud*/public static String getValue(Class<?> classes, Object code) throws Exception {if (classes.isEnum()) {if (ObjectUtils.checkEmpty(code)) {return CommonEnum.ISEMPTY.getValue();}Object[] objects = classes.getEnumConstants();for (Object object : objects) {Method getValue = object.getClass().getDeclaredMethod("getValue");Method getCode = object.getClass().getDeclaredMethod("getCode");if (getCode.invoke(object).equals(code)) {return getValue.invoke(object).toString();}}}return CommonEnum.NODEFINE.getValue();}/*** 方法功能说明:@1.配合枚举类,根据输入的value, 取出对应的 code值* 创建时间:2020年8月25日 上午9:54:04 --lud*/public static String getCode(Class<?> classes, Object value) throws Exception {if (classes.isEnum()) {if (ObjectUtils.checkEmpty(value)) {return CommonEnum.ISEMPTY.getCode();}Object[] objects = classes.getEnumConstants();for (Object object : objects) {Method getValue = object.getClass().getDeclaredMethod("getValue");Method getCode = object.getClass().getDeclaredMethod("getCode");if (getValue.invoke(object).equals(value)) {return getCode.invoke(object).toString();}}}return CommonEnum.NODEFINE.getCode();}/*** 基础枚举类* 【PS:作为自定义枚举类时的模板 】*/private enum CommonEnum {ISEMPTY("", ""), NODEFINE("未定义", "未定义");private String code;private String value;public String getValue(){ return value; }public String getCode(){ return code; }private CommonEnum(String code, String value) { this.code = code; this.value = value; }}/** 读取枚举的实体类 */public class EnumEntity {private String code;private String value;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}@Overridepublic String toString() {return "EnumEntity [code=" + code + ", value=" + value + "]";}}}

枚举工具类 EnumUtils.java相关推荐

  1. java枚举返回字符串_枚举工具类-通过给定值获取对应的枚举类

    开发背景: 在开发过程中遇到需要通过给定的值来获取对应的枚举值,如下例枚举类中,需要通过传入"春"来获取SPRING. public 开始尝试通过Enum的内置方法valueOf( ...

  2. java枚举工具类_Java 枚举

    引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter) 概念枚举(enum)全称为 enumeration, 是 JDK 1.5 中引入的新特性. ...

  3. Java 枚举工具类

    1.定义一个EnumItem接口,供每个枚举类实现 public interface EnumItem<V> extends Serializable {//泛型V getCode();S ...

  4. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  5. [Google Guava] 2.3-强大的集合工具类:java.util.Collections中未包含的集合工具

    原文链接 译文链接 译者:沈义扬,校对:丁一 尚未完成: Queues, Tables工具类 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.G ...

  6. Math数学工具类在java中如何使用?

    Math数学工具类在java中如何使用? 一.Math数学工具类是什么? 在处理业务的时候,经常遇到一些有关数学方面的计算,特别是做测绘和监测业务时,显得出现的频率及其多, JDK提供了一个Math类 ...

  7. java int to hex_Java字符串转16 进制工具类Hex.java | 学步园

    Java 字符串转 16 进制工具类 Hex.java 实现 16进制 0xfecd .. 和 java 字符串之间的互转换! 如果做开发,通常用户登陆密码都会 mad5(salt + pwd) 然后 ...

  8. SpringBoot的JSON工具类(java),用于前后端分离

    简介 JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式.它基于 ECMAScript(European Computer Manufactur ...

  9. 加密工具类 - CryptoUtils.java

    加密工具类,包含MD5,BASE64,SHA,CRC32的加密与解密方法. 源码如下:(点击下载  - CryptoUtils.java.commons-io-2.4.jar.commons-code ...

最新文章

  1. 彻底解决tensorflow:ImportError: Could not find 'cudart64_90.dll' tensorflow安装
  2. c语言动态申请函数,C语言用malloc函数申请二维动态数组
  3. django-全文检索
  4. index.php?s=$1,thinkphp nginx配置rewrite,地址会多出个.php
  5. VTK:直纹面过滤器用法实战
  6. C#打开文件对话框和文件夹对话框
  7. 使用Spring Boot和注释支持配置Spring JMS应用程序
  8. size_t strtok
  9. 1 利用Anaconda完美解决Python 2与python 3的共存问题
  10. DUBBO与ZOOKEEPER、SPRINGMVC整合和使用
  11. php qq邮箱发送邮件报错_PHP实现发送邮件(二)
  12. ubuntu12.04下安装NVIDIA驱动
  13. SqlServer和Oralce保留几位小数以及当末尾小数为0也显示
  14. 【智驾深谈】从滴滴Uber合并看中国智能出行“三国演义”
  15. 机器学习:Kmeans聚类算法总结及GPU配置加速demo
  16. 设置cpolar远程访问本地网页
  17. rxjava面试题,android教程零基础入门
  18. imazing显示无法连接服务器,为什么苹果手机连接不上iMazing
  19. WinForm,可能是Windows上手最快的图形框架了
  20. realmeq2可以刷鸿蒙系统吗,realmeQ2Pro有NFC功能吗?可以用realmeQ2Pro刷公交和地铁吗...

热门文章

  1. 使用jmeter 上传文件
  2. mongoDB之find()
  3. 你不懂,仅仅有程序猿懂
  4. Linux LVM简明教程
  5. db2 常用命令(一)
  6. Android WebView 问题总集
  7. idea解决lombok注解失效问题
  8. Ansible首次ssh问题解决
  9. (ACL+ICML)2020推荐系统相关论文聚焦(附下载链接)
  10. leetcode力扣78. 子集