赞
踩
在JDK 5中加入的枚举Enum类型也是可以作为case值的。
在JDK 7中,又加入了对String类型的支持,从此不用再写If-Else来判断字符串了。
switch的case语句可以处理int,short,byte,char类型的值,
因为short,byte,char都会转换成int进行处理,这一点也可以从生成的字节码看出。
下面举例。如何在switch-case中使用ennum枚举类型:
public class SwitchEnumDemo { public static void main(String[] args) { String type = "type1"; switch (Objects.requireNonNull(TypeEnnum.getTypeName(type))) { case TYPE_1: System.out.println("type1----------"); break; case TYPE_2: System.out.println("type2----------"); break; case TYPE_3: System.out.println("type3----------"); break; default: System.out.println("defualt---type----------"); } } }
运行结果如下:
type 定义枚举类如下: ```javascript public enum TypeEnnum { TYPE_1("type1", "类型1"), TYPE_2("type2", "类型2"), TYPE_3("type3", "类型3"), ; TypeEnnum(String type, String desc) { this.type = type; this.desc = desc; } private String type; private String desc; public String getType() { return type; } public String getDesc() { return desc; } public static TypeEnnum getTypeName(String type){ for(TypeEnnum transactType : values()){ if (transactType.getType().equals(type)) { //获取指定的枚举 return transactType; } } return null; } }
注意枚举类中需要以下方法:
public static TypeEnnum getTypeName(String type){
for(TypeEnnum transactType : values()){
if (transactType.getType().equals(type)) {
//获取指定的枚举
return transactType;
}
}
return null;
}
否则会报如下错误,识别不出枚举类型:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。