[英]jdk 8 does not allow string in switch statement ?? why
error:
Cannot switch on a value of type String for source level below 1.7. Only convertible int values or enum constants are permitted code.
这是一个例子:
String typeOfDay;
switch (dayOfWeekArg) {
case "Monday":
typeOfDay = "Start of work week";
break;
case "Tuesday":
case "Wednesday":
case "Thursday":
typeOfDay = "Midweek";
break;
case "Friday":
typeOfDay = "End of work week";
break;
case "Saturday":
case "Sunday":
typeOfDay = "Weekend";
break;
default:
throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
}
Cannot switch on a value of type String for source level below 1.7
您没有使用jdk8。您需要更新Java或修复IDE的编译器合规性级别。
要在Eclipse中更改编译器合规性级别,请执行以下操作:
打开窗口>首选项> Java>编译器
将“ JDK合规性”下的编译器合规性级别更改为1.8
要在Netbeans中更改源级别:
在“项目”视图中右键单击“库”节点,然后选择“属性”。
选择“源”并将源级别设置为1.8
要在IntelliJ IDEA中更改项目字节码版本:
打开文件>设置>构建,执行,部署>编译器> Java编译器
将项目字节码版本设置为1.8
强烈建议您使用if ("Monday".equals(dayOfWeekArg))
而不是switch。 因为它支持所有JDK。 如今,大多数应用程序都在JDK 1.7上运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.