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);
}
答案 0 :(得分:18)
Cannot switch on a value of type String for source level below 1.7
您没有使用jdk 8.您需要更新java或修复IDE的编译器合规级别。
在 Eclipse 中更改编译器合规性级别:
打开窗口>偏好> Java>编译器
更改" JDK合规性"下的编译器合规性级别到1.8
更改 Netbeans 中的来源级别:
在“项目”视图中右键单击“库”节点,然后选择“属性”。
选择"来源"并将源级别设置为1.8
更改 IntelliJ IDEA 中的项目字节码版本:
打开文件>设置>构建,执行,部署>编译器> Java编译器
将项目字节码版本设置为1.8
答案 1 :(得分:1)
强烈建议您使用if ("Monday".equals(dayOfWeekArg))
代替切换。因为它支持所有JDK。而现在,大多数应用程序都运行在JDK 1.7上。