IDEA编译时报错,错误如下:
java: -source 8 中不支持 switch 规则 (请使用 -source 14 或更高版本以启用 switch 规则)
起初,我不明所以,明明已经将SDK版本更换成了17,为什么会报错java: -source 8,经过分析得出结论,项目字节码版本设置成了8,所以在使用 switch中 -> 语法时,就会报错。
报错原因:是因为你使用了当前项目字节码版本不支持的语法,如下:
switch (choose) {
case "1" -> System.out.println("1");
case "2" -> System.out.println("2");
case "3" -> System.out.println("3");
case "4" -> System.out.println("4");
case "5" -> System.out.println("退出");
default -> System.out.println("没有这个选项!");
}
switch中的 -> 是JDK14的更新的语法规则,如果你的项目字节码版本设置比14低,那么就会报错
解决方法一:
将代码中的 -> 改成 : ,并加上break;和{},如下:
switch (choose) {
case "1" : {
System.out.println("1");
break;
}
case "2" : {
System.out.println("2");
break;
}
case "3" : {
System.out.println("3");
break;
}
case "4" : {
System.out.println("4");
break;
}
case "5" : {
System.out.println("退出");
break;
}
default : {
System.out.println("没有这个选项!");
break;
}
}
解决方法二:
第一步,找到File -> Settings
第二步,在打开的Settings面板中找到Build,Execution,Deployment -> Compiler -> Java Compiler
第三步,将Project bytecode version设置成大于括号中提示的版本即可(请使用 -source 14 或更高版本以启用 switch 规则),如我将其设置为与自身JDK相对应的版本17
最后,编译运行发现不再报错