通过反射获取枚举
来源:互联网 发布:有哪些是三级域名 编辑:程序博客网 时间:2024/04/29 09:43
public enum EnumSmsType {not_exits(-1,"不存在的"),alert_login_pwd(0,"修改登录密码"),alert_auth(1,"认证信息修改"),alert_email(2,"修改邮箱"),set_operate_pwd(3,"设置操作密码"),register_code(4,"注册验证码"),change_phone(5,"更改手机号"),door_secret(6,"门禁短信"),door_secret_forget(7,"门禁密保重置");private int value;private String desc;private EnumSmsType(int value,String desc) {this.value = value;this.desc=desc;}public int getValue() {return value;}public String getDesc() {return desc;}public static EnumSmsType setValue(int str) {EnumSmsType[] list=EnumSmsType.values();for(EnumSmsType enums:list){if(enums.getValue()==str){return enums;}}return not_exits;}}
package com.poobo.common.Enums;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.LinkedHashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;import com.poobo.sms.EnumSmsType;public class EnumsUtils {/** * 获取枚举列表 * @author 2017年1月5日上午10:32:11 * @param em * @return */public static Map<Integer, String> toCodeDescriptionMap(Enum em) { Class clazz = em.getDeclaringClass(); LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>(); try { Method toName = clazz.getMethod("getDesc"); Method toCode = clazz.getMethod("getValue"); //得到enum的所有实例 Object[] objs = clazz.getEnumConstants(); for (Object obj : objs) { map.put((Integer)toCode.invoke(obj),(String)toName.invoke(obj)); } return map ; } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } /** * 获取所有值和描述 * @author 2017年1月5日上午10:35:58 * @param em * @return */public static String getAllDesc(Enum em){ StringBuffer sb=new StringBuffer(); Class clazz = em.getDeclaringClass(); LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>(); try { Method toName = clazz.getMethod("getDesc"); Method toCode = clazz.getMethod("getValue"); //得到enum的所有实例 Object[] objs = clazz.getEnumConstants(); for (Object obj : objs) { map.put((Integer)toCode.invoke(obj),(String)toName.invoke(obj)); sb.append(toCode.invoke(obj)+":"+toName.invoke(obj)+","); } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return sb.toString(); }public static void main(String[] args) {System.out.println(JSONObject.toJSONString(EnumsUtils.toCodeDescriptionMap(EnumSmsType.alert_auth)));System.out.println(EnumsUtils.getAllDesc(EnumSmsType.alert_auth));}}
0 0
- 通过反射获取枚举
- java通过反射获取枚举对象
- C#通过反射获取枚举值列表
- asp.net通过反射获取类中定义的枚举
- 通过反射 获取 泛型类
- 通过反射获取所有属性
- 通过反射获取Context实例
- java 通过反射获取注解
- 通过反射获取窗体实例
- 通过反射获取实例化
- java 通过反射获取注解
- 通过反射获取父类泛型类型
- 反射获取枚举上的注解
- 反射获取枚举的属性注释
- 自定义枚举以及如何在反射中获取枚举值
- 通过枚举进程获取用户的TOKEN
- C#通过反射获取按钮的文本
- android上通过反射,获取存储器列表
- 打印功能 Lodop打印控件 bootstrap框架
- EditText的监听
- 使用QXDesigner可视化开发RIA系统(二)
- JS中的常量(基本数据类型)和内置对象
- c#执行insert后获取ID
- 通过反射获取枚举
- Android菜鸟练习第三十六课 创建JSON串
- 使用springfox+swagger2书写API文档
- C语言有参函数调用时参数间数据传递问题
- Java中Json字符串直接转换为对象(包括多层List集合 嵌套)
- [Java] 整理的有关BigDecimal工具类分享
- storm1.0.2版本集群搭建完整步骤
- (Python实现)数据PCA降维白化和L2归一化-深度学习实践常用数据预处理
- 总结4点对学习Linux有帮助的建议