使用字符串错误的IntelliJ switch语句:使用-source 7

时间:2014-03-18 13:37:28

标签: java intellij-idea switch-statement java-7

我正在尝试使用IntelliJ(在Mac OS X上)编译我使用Eclipse编写的一些代码。我试图运行以下代码:

switch (category) {
    case "below 20":
        below20++;
        break;
    case "20 to 29":
        to30++;
        break;
    case "30 to 39":
        to40++;
        break;
    case "40 to 49":
        to50++;
        break;
    case "50 to 59":
        to60++;
        break;
    case "60 to 69":
        to70++;
        break;
    case "70 t0 79":
        to80++;
        break;
    case "80 to 89":
        to90++;
        break;
    case "90 to 99":
        above90++;
        break;
    default:
        break;
}

然而,我收到错误:

java: strings in switch are not supported in -source 1.6
  (use -source 7 or higher to enable strings in switch)

我知道有些答案是:RTFE(即用Error替换Manual)。但我做到了。我尝试过以下方法:

  • 偏好设置>编译器> Java编译器并将-source 7和/或-target 1.7添加到其他命令行参数
  • 编辑配置:选中使用备用JDK 并在目录/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home
  • 中写入

它还没有解决它。我做错了什么?

注意:我知道这很明显,因为目录在上面,但我安装了Java 7

提前致谢!

3 个答案:

答案 0 :(得分:17)

在Intellij IDEA,您还应该转到Project Settings - > Project并在那里设置适当的Project language level

答案 1 :(得分:15)

如果在按照建议检查文件>之后仍有人收到此错误消息项目结构 - >项目并设置适当的项目语言级别。

请务必同时检查文件>项目结构>模块,以查看所有模块是否都在正确的语言级别:(或特定的期望级别)。

还有一个地方可能出错,即:文件>设置>编译器> Java编译器。在那里你可以设置项目和模块的java编译器版本。

(对于IntelliJ版本< = 12:项目结构=>项目设置)

答案 2 :(得分:0)

请记住,仅在JDK 1.7及更高版本中支持在switch语句中使用字符串。 IntelliJ的默认项目设置可能不是默认使用JDK 1.7。 将它们从项目设置更改为JDK 1.7。