15

我正在使用 Eclipse 开发 Java 程序。我不得不将 JRE 和 JDK 从 1.7x 降级到 1.6。现在一切都指向 1.6.x(包括已安装的 JRE 和 JDK 合规性)。

但是现在Eclipse仍然给我一个错误的switch声明,表明:

无法为低于 1.7 的源级别打开字符串类型的值。只允许可转换的 int 值或枚举常量

在下面的代码上:

Switch("test") // Which is fine with 1.7.x

我从计算机中删除了 1.7.x,不知道为什么它仍在寻找 1.7 而不是 1.6?

4

7 回答 7

21

开启字符串是在 Java 1.7 中引入的!

降级到 Java 1.6 时会出现错误消息。在那个版本中,您只能打开原始类型和枚举。

相关问题:

于 2012-08-01T19:24:45.420 回答
18

右键单击您的项目,转到属性。从左侧菜单中选择 Java 编译器。选择您的合规级别(1.7 或 1.6)。1.7 将停止该消息。1.6,正如其他人之前所说,不会让你使用字符串。

于 2015-01-27T20:26:33.350 回答
3

实际上,您的代码在 1.6 上无效。您不能对字符串进行切换。

于 2012-08-01T19:24:22.773 回答
2

switch(String)是从 Java 7 开始适用的语法。因为你有不支持 switch(String) 的 1.6,所以 eclipse 给出了编译错误。

更改switch(String)switch(int)

于 2012-08-01T19:24:00.373 回答
2

在 Java 4 及之前,您只能使用 switch on booleancharshortbyteint类型。

Enum在 Java 5 和 6中,除了以前的类型之外,您还可以使用 switch on 。

并且只有 Java 7 支持 switch on String

于 2012-08-01T19:27:16.280 回答
2

更改您的 jdk 和编译器合规性级别: 在此处输入图像描述

于 2020-01-30T07:01:21.257 回答
1

当我尝试使用 Ant 工具进行部署时,我遇到了同样的问题。

对我有用的解决方案是:

  • 右键单击项目,然后单击属性
  • 转到 Java 构建路径
  • 转到 JRE 系统库
  • 选择了执行环境;我改为选择 Alternate JRE,然后选择 jre7(如下所示)

在此处输入图像描述

于 2016-06-10T03:59:22.070 回答