一,运用场景;
后台已定义好的枚举类型;从数据库中直接获取的数值为英文的,此时前段显示又是中文的;这时候,我们就需要在后台提前将该字段枚举类型先转换好....
写法一:直接替换(这种写法 如果枚举值定义的很多,麻烦的要死;不建议使用)
如:
private String user_status_name;
public String getUser_status_name() {
if(UserStatus.FILLING.name().equals(getUser_status())){
setUser_status_name(UserStatus.FILLING.getDesc());
}else if(UserStatus.APPROVING.name().equals(getUser_status())){
setUser_status_name(UserStatus.APPROVING.getDesc());
}else if(UserStatus.VALID.name().equals(getUser_status())){
setUser_status_name(UserStatus.VALID.getDesc());
}else if(UserStatus.INVALID.name().equals(getUser_status())){
setUser_status_name(UserStatus.INVALID.getDesc());
}
return user_status_name;
}
public void setUser_status_name(String user_status_name) {
this.user_status_name = user_status_name;
}
写法二:建议使用
public String getUser_status_name() {
if(StringUtils.isNotBlank(getUser_status())){
try {
setUser_status_name(UserStatus.valueOf(getUser_status()).getDesc());
} catch (Exception e) {
setUser_status_name("");
}
}
return user_status_name;
}
枚举类定义:
public enum UserStatus {
FILLING("信息完善中"),
APPROVING("审核中"),
VALID("有效用户"),
INVALID("无效用户");
String desc;
private UserStatus(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
}