前言
java中使用枚举类获取枚举值,我们常用的方式就是使用switch case,代码看的非常臃肿,下面介绍一种方法精简代码。话不多说,上代码。
代码
枚举类
public enum OffbondMessageEnum {
WXXZ_WIN_INNER("中签内部通知","MXZ005","xxxInnerServiceImpl"),
WXXZ_WIN_FUND_ACCOUNT("中签通知基金会计","MXZ004","xxxFundAccountServiceImpl")
;
private String name;
private String code;
private String serviceName;
OffbondMessageEnum( String name, String code, String serviceName) {
this.code = code;
this.name = name;
this.serviceName = serviceName;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public static String getServiceNameByCode(String code){
OffbondMessageEnum[] values = OffbondMessageEnum.values();
for(OffbondMessageEnum offbondMessageEnum : values){
if(StrUtil.equals(code, offbondMessageEnum.getCode())){
return offbondMessageEnum.getServiceName();
}
}
throw WinExceptionUtil.winException(OffbondExceptionEnum.TEMPLATE_SERVICE_NOT_EXIST, code);
}
}
如上所示的getServiceNameByCode方法,就可以直接根据code获取相应的属性了