Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java &引用;无法为以下源级别打开字符串类型的值。";Eclipse中的错误_Java_Eclipse - Fatal编程技术网

Java &引用;无法为以下源级别打开字符串类型的值。";Eclipse中的错误

Java &引用;无法为以下源级别打开字符串类型的值。";Eclipse中的错误,java,eclipse,Java,Eclipse,我正在使用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?开关(字符串)是

我正在使用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?

开关(字符串)
是从Java 7开始就适用的语法。因为1.6不支持开关(字符串),eclipse会给出编译错误


开关(字符串)
更改为
开关(int)

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

在Java 1.7中引入了对字符串的切换

降级到Java 1.6时,错误消息应为。在该版本中,只能打开基元类型和枚举

相关问题:


在Java 4和之前,您只能使用开关打开
布尔型
字符型
短型
字节型
整数型

在Java5和Java6中,除了前面的类型之外,还可以使用switch-on
Enum
s


只有Java 7支持打开
String
s.

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

我在尝试使用Ant工具部署时遇到了同样的问题

对我有效的解决方案是:

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

更改jdk和编译器的遵从性级别:

感谢您的简单介绍!