java 枚举类使用反射
目录
- 前言
- 一、枚举类
- 二、反射获取枚举
- 三、反射调用枚举方法
前言
跟普通类使用反射基本一样。
一、枚举类
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 枚举类使用反射相关推荐
- Java学习总结3——枚举类和反射机制
Java枚举类和反射机制 一.Java枚举类(Enum): 在某些情况下,一个类的对象是有限且固定的,对于这种对象的实例有限且固定的类,在 Java 中被称为枚举类(Enum):枚举类是为了提高代码可 ...
- 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀
零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...
- 学妹问我Java枚举类与注解,我直接用这个搞定她!
很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...
- Java枚举类使用方式
Java枚举类使用方式 单枚举定义 : /*** * @title: 单枚举定义* @author: wll* @since: 2021-1-27 14:47:54*/ public enum Jud ...
- java枚举类中字段有没有必要加final____枚举类字段 Field ‘xxx‘ may be ‘final‘
java枚举类中字段有没有必要加final 今天在写一个系统统一返回码的枚举类时候,突然想到一个问题,当不小心手抖给枚举类自动生成了set方法,而恰巧在用的地方不小心用了set方法,从而修改了code ...
- JAVA 枚举类的初步理解
JAVA 枚举类的初步理解 现在Java的枚举类在真实项目中已经用的比较频繁,比静态常量更好用,也更有限定性,enum类可以用来表示有限的类对象,比如星期.月份.性别或者项目中的产品类型 像诸如此类的 ...
- java 枚举类组合在一起_Java,.NET,但为什么在一起?
java 枚举类组合在一起 十二年前,Sun微系统公司大张旗鼓地宣布了一种新的编程语言和环境,用于使网页更具动态性和"活力". 当然,现在,Java编程语言是一种无处不在的工具,它 ...
- java 枚举类型enum ppt,关于JAVA枚举类使用的异常
当前位置:我的异常网» J2SE » 关于JAVA枚举类使用的异常 关于JAVA枚举类使用的异常 www.myexceptions.net 网友分享于:2013-01-24 浏览:5次 关于JAV ...
- Java枚举类使用要点
Java枚举类 Java中的枚举类型定义使用enum关键字,定义时,系统默认继承Enum抽象类.先来看一下枚举类的使用. enum Sex {// 枚举对象必须要在第一行MAIL("男&qu ...
- Java枚举类的写法
Java枚举类的写法 枚举也是一个类(枚举对象,属性,构造器,get方法),由于是枚举,一般我们只需要得到值,而不需要set值
最新文章
- 三、临时弹出一个QQ对话窗口
- Linux之SSH协议知识点总结
- Ceph v12.2 Luminous基于ubuntu16.04集群部署
- Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
- mysql cbo优化器_查询优化器介绍 - PolarDB-X 云原生分布式数据库 - 阿里云
- [2020-11-30 contest]数列(矩阵加速),秘密通道(dijkstra最短路)小X游世界树(换根dp),划分(数学)
- python列表的表示形式_python 列表推导式
- MySQL 数据库误删除后的数据恢复操作说明
- Keil 中的Code, RO-data , RW-data, ZI-data
- 严蔚敏数据结构课后参考答案
- Ubuntu下QQTIM安装
- oracle11g基于bootstrap$中的ind$表损坏系列五
- 如何创建XS Job来完成定时任务
- 如何评价一起嗨聊 APP?
- ArcGIS API for Silverlight 绘制降雨路径动画
- matlab cnn 局部最大值,Matlab实现CNN(一)
- 魅族18解bl锁+刷boot+刷面具+刷lsp+刷hmspush教程
- JSP内置对象使用大全
- 关于mysql登录不成功遇到的问题及解决方案Access denied for user ‘root‘@‘IP‘ (using password: YES)
- ubuntu 彻底卸载软件及配置文件
热门文章
- 宿主机上docker0 Linux 网桥设备是怎么来的?
- RK3399平台开发系列讲解(内核驱动外设篇)6.8、视频解码芯片GM7150驱动的添加
- UVA 473 Raucous Rockers
- Linux 下串口编程入门
- opencv之扩展模块安装
- POI操作Microsoft Office 之 操作PPT简单示例(附源码)
- win10清除系统激活密钥
- 查看CentOS版本信息
- 使用pip报错error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools“:
- 面试手写代码的经验分享