枚举的写法
package com.webro.util.utils;
/**
* 字典常量
*
*/
public class DictEnums {
public static final String NINE_SITE_TYPE = "nine_site_type";
public enum NineSiteType implements Dict{
ENTERPRISE("小生产加工企业", 1),
HOSPITAL("小医院", 2),
SCHOOL("小学校", 3),
SHOP("小商店", 4),
RESTAURANT("小餐饮场所", 5),
BATHING("小洗浴场所", 6),
HOTEL("小旅馆", 7);
private final String label;
private final Integer value;
NineSiteType(String label, Integer value) {
this.label = label;
this.value = value;
}
@Override
public String type() {
return NINE_SITE_TYPE;
}
@Override
public String label() {
return label;
}
@Override
public String value() {
return value.toString();
}
@Override
public Integer intValue() {
return value;
}
public static String getLabelFromValue(Integer value) {
if (value != null) {
for (NineSiteType state : NineSiteType.values()) {
if (state.value.equals(value)) {
return state.label;
}
}
}
return null;
}
}
/**
* 字典项包装类
*/
public interface Dict {
/**
* 字典类型
*/
String type();
/**
* 字典名
*/
String label();
/**
* 字典值
*/
String value();
/**
* 整数字典值
*/
Integer intValue();
}
}
引用
public void setType(Integer type) {
this.type = type;
if (type != null) {
//通过值获取描述
this.typeStr = DictEnums.NineSiteType.getLabelFromValue(type);
//获取值为 3
Integer t = DictEnums.NineSiteType.SCHOOL.intValue();
//获取值为 "小学校"
String l = DictEnums.NineSiteType.SCHOOL.label();
}
}