巧用枚举
应用场景
数据库是对事物的抽象,比如有些场景是用数字代表含义:我们用性别为例,1代表男;2代表女,在程序中要统一转化,不能写死在程序中,如何解决:
在某些项目中有人是这样做的:
public class Statuses{
// 男
public static final int SEX_MALE = 1;
// 女
public static final int SEX_FEMALE = 0;
public final static Map sexMap = new HashMap();
static {
sexMap.put(SEX_MALE, "男");
sexMap.put(SEX_FEMALE, "女");
}
}
这种土包子做法是可以,但是不是正规做法,Java中提供了枚举类
enum SexEnum {
SEX_MALE(1, "男"),SEX_FEMALE(2, "女");
private Integer code;
private String msg;
SexEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public String getMsg(Integer code) {
for (SexEnum sexEnum: SexEnum.values()) {
if (sexEnum.getCode().intValue() == code.intValue()) {
return sexEnum.getMsg();
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
好处自行体会!