例如有以下的场景,通过判断参数判断是何种异常,if的代码逻辑写法如下
public class Test {
public static void main(String[] args) {
System.out.println(getNum("999"));
}
public static String getNum(String number){
String result;
if("666".equals(number)){
result = "时间异常";
}else if("777".equals(number)){
result = "事件异常";
}else if("888".equals(number)){
result = "物品异常";
}else if("999".equals(number)){
result = "设备异常";
}else if("000".equals(number)){
result = "操作异常";
}else{
result = "未知异常";
}
return result;
}
但是代码过于冗长,现在利用枚举优化以下代码:
定义一个枚举类:
package com.hikvision.test;
//定义某某枚举类
public enum Type {
timeexception("666","时间异常"),
thingexception("777","事件异常"),
personexception("888","人员异常"),
deviceexception("999","设备异常"),
optexception("000","操作异常");
private String code;
private String desc;
//定义枚举类的构造方法
private Type(String code,String desc){
this.code = code;
this.desc = desc;
}
//定义枚举类的获取方法
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
接下来判断就很简单了
package com.hikvision.test;
public class Test {
public static void main(String[] args) {
System.out.println(getNumByEnum("999"));
}
public static String getNumByEnum(String number){
//循环枚举类
for(Type t:Type.values()){
if(number!=null && number.equals(t.getCode())){
return t.getDesc();
}
}
return "未知异常";
}
}