繁体   English   中英

jdk 8不允许在switch语句中使用字符串? 为什么

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM