enum类型用好了,非常比遍历,可以通过对象对比,描述转化,描述转化为对应的enum对象
1、枚举类的对象默认都是public static final
2、枚举类的构造器都是private,所以无法在外部创建其实例
3、enum类不可被继承。
package com.xue.wechat.enums.sys;
/**
* 微信基础授权类型
* @author qsnp236
*
*/
public enum ConfigType {
//微信ticket
TICKET("ticket"),
//微信token
TOKEN("token");
//汉字描述字段
private String desc;
//初始化函数,默认是private
ConfigType(String desc){
this.desc = desc;
}
//外部获取对应的描述信息,用户对象的调用,如类的字段对改方法调用
public String getDesc() {
return this.desc;
}
//外部将描述转化为enum对象
public static ConfigType from(String desc){
for (ConfigType configType : ConfigType.values()){
if (configType.getDesc().equals(desc)){
return configType;
}
}
throw new IllegalArgumentException("无法转化为对应的enum类型,原因是未知描述信息: " + desc);
}
}