在java中明确规定switch里面只允许使用byte、char、short、int和枚举 类型,但是我们实际编程过程中往往需要通过String来进行比较。那么应该怎么做呢?其实很简单,我们只需要将enum类型做一个小小的封装就可以达到我们的目的。
Enum类
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, NOVALUE;
public static Day toDay(String str) {
try {
return valueOf(str);
} catch (Exception ex) {
return NOVALUE;
}
}
}
调用类
public class GetDay {
public static void main(String[] args) {
String day = "sunday";
switch (Day.toDay(day.toUpperCase())) {
case SUNDAY:
System.out.println("星期天");
break;
case MONDAY:
System.out.println("星期一");
break;
case TUESDAY:
System.out.println("星期二");
break;
case WEDNESDAY:
System.out.println("星期二");
break;
case THURSDAY:
System.out.println("星期二");
break;
case FRIDAY:
System.out.println("星期二");
break;
case SATURDAY:
System.out.println("星期二");
break;
case NOVALUE:
System.out.println("输错");
break;
}
}
}