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));
}
}