目录

  • 前言
  • 一、枚举类
  • 二、反射获取枚举
  • 三、反射调用枚举方法

前言

跟普通类使用反射基本一样。

一、枚举类

public enum OperateType {add("添加", 0),delete("删除", 1),select("查询", 2),update("修改", 3),stop("停止", 4),restart("重启", 5),check("检查", 6),download("下载", 7),upload("上传", 8),login("登录", 9),logout("退出", 10),other("其他", 11);private final String value;private final int intVal;OperateType(String value, int intVal) {this.value = value;this.intVal = intVal;}public static String getNameByIntVal(int intVal) {for (OperateType operateType : values()) {if (operateType.intVal == intVal)return operateType.name();}return other.name();}public String getValue() {return value;}public int getIntVal() {return intVal;}
}

二、反射获取枚举

     @Testpublic void invokeEnum() throws ClassNotFoundException {String name = "select";Class<?> clazz = Class.forName("com.iscas.biz.config.log.OperateType");Object[] enumConstants = clazz.getEnumConstants();Optional<Object> select = Arrays.stream(enumConstants).filter(item -> item.toString().equalsIgnoreCase(name)).findFirst();if (select.isPresent()){OperateType enumValue = (OperateType)select.get();System.out.println(enumValue.name());}}

三、反射调用枚举方法

         @Testpublic void invokeEnumMethod() throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {String name = "select";String methodName = "getValue";Class<?> clazz = Class.forName("com.iscas.biz.config.log.OperateType");Object[] enumConstants = clazz.getEnumConstants();Optional<Object> select = Arrays.stream(enumConstants).filter(item -> item.toString().equalsIgnoreCase(name)).findFirst();if (select.isPresent()) {Object obj =select.get();Method method = clazz.getDeclaredMethod(methodName);Object value = method.invoke(obj);System.out.println(value);}}

java 枚举类使用反射相关推荐

  1. Java学习总结3——枚举类和反射机制

    Java枚举类和反射机制 一.Java枚举类(Enum): 在某些情况下,一个类的对象是有限且固定的,对于这种对象的实例有限且固定的类,在 Java 中被称为枚举类(Enum):枚举类是为了提高代码可 ...

  2. 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀

    零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...

  3. 学妹问我Java枚举类与注解,我直接用这个搞定她!

    很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...

  4. Java枚举类使用方式

    Java枚举类使用方式 单枚举定义 : /*** * @title: 单枚举定义* @author: wll* @since: 2021-1-27 14:47:54*/ public enum Jud ...

  5. java枚举类中字段有没有必要加final____枚举类字段 Field ‘xxx‘ may be ‘final‘

    java枚举类中字段有没有必要加final 今天在写一个系统统一返回码的枚举类时候,突然想到一个问题,当不小心手抖给枚举类自动生成了set方法,而恰巧在用的地方不小心用了set方法,从而修改了code ...

  6. JAVA 枚举类的初步理解

    JAVA 枚举类的初步理解 现在Java的枚举类在真实项目中已经用的比较频繁,比静态常量更好用,也更有限定性,enum类可以用来表示有限的类对象,比如星期.月份.性别或者项目中的产品类型 像诸如此类的 ...

  7. java 枚举类组合在一起_Java,.NET,但为什么在一起?

    java 枚举类组合在一起 十二年前,Sun微系统公司大张旗鼓地宣布了一种新的编程语言和环境,用于使网页更具动态性和"活力". 当然,现在,Java编程语言是一种无处不在的工具,它 ...

  8. java 枚举类型enum ppt,关于JAVA枚举类使用的异常

    当前位置:我的异常网» J2SE » 关于JAVA枚举类使用的异常 关于JAVA枚举类使用的异常 www.myexceptions.net  网友分享于:2013-01-24  浏览:5次 关于JAV ...

  9. Java枚举类使用要点

    Java枚举类 Java中的枚举类型定义使用enum关键字,定义时,系统默认继承Enum抽象类.先来看一下枚举类的使用. enum Sex {// 枚举对象必须要在第一行MAIL("男&qu ...

  10. Java枚举类的写法

    Java枚举类的写法 枚举也是一个类(枚举对象,属性,构造器,get方法),由于是枚举,一般我们只需要得到值,而不需要set值

最新文章

  1. 三、临时弹出一个QQ对话窗口
  2. Linux之SSH协议知识点总结
  3. Ceph v12.2 Luminous基于ubuntu16.04集群部署
  4. Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
  5. mysql cbo优化器_查询优化器介绍 - PolarDB-X 云原生分布式数据库 - 阿里云
  6. [2020-11-30 contest]数列(矩阵加速),秘密通道(dijkstra最短路)小X游世界树(换根dp),划分(数学)
  7. python列表的表示形式_python 列表推导式
  8. MySQL 数据库误删除后的数据恢复操作说明
  9. Keil 中的Code, RO-data , RW-data, ZI-data
  10. 严蔚敏数据结构课后参考答案
  11. Ubuntu下QQTIM安装
  12. oracle11g基于bootstrap$中的ind$表损坏系列五
  13. 如何创建XS Job来完成定时任务
  14. 如何评价一起嗨聊 APP?
  15. ArcGIS API for Silverlight 绘制降雨路径动画
  16. matlab cnn 局部最大值,Matlab实现CNN(一)
  17. 魅族18解bl锁+刷boot+刷面具+刷lsp+刷hmspush教程
  18. JSP内置对象使用大全
  19. 关于mysql登录不成功遇到的问题及解决方案Access denied for user ‘root‘@‘IP‘ (using password: YES)
  20. ubuntu 彻底卸载软件及配置文件

热门文章

  1. 宿主机上docker0 Linux 网桥设备是怎么来的?
  2. RK3399平台开发系列讲解(内核驱动外设篇)6.8、视频解码芯片GM7150驱动的添加
  3. UVA 473 Raucous Rockers
  4. Linux 下串口编程入门
  5. opencv之扩展模块安装
  6. POI操作Microsoft Office 之 操作PPT简单示例(附源码)
  7. win10清除系统激活密钥
  8. 查看CentOS版本信息
  9. 使用pip报错error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:
  10. 面试手写代码的经验分享