【问题标题】:"Cannot switch on a value of type String for source level below .." error in Eclipse“无法为低于 .. 的源级别打开字符串类型的值。”Eclipse 中的错误
【发布时间】:2012-08-01 19:22:29
【问题描述】:

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


    【解决方案1】:

    在 Java 1.7 中引入了字符串切换功能!

    当您降级到 Java 1.6 时,错误消息是预期的。在那个版本中,您只能打开原始类型和枚举。

    相关问题:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的简单介绍!
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        switch(String) 更改为switch(int)

        【讨论】:

          【解决方案5】:

          在 Java 4 和之前的版本中,您只能使用 booleancharshortbyteint 类型的开关。

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

          并且只有 Java 7 支持开启Strings。

          【讨论】:

            【解决方案6】:

            同时更改您的 jdk 和编译器合规级别:

            【讨论】:

              【解决方案7】:

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

              对我有用的解决方案是:

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-02-28
                • 1970-01-01
                • 2019-11-29
                • 1970-01-01
                • 1970-01-01
                • 2014-04-21
                • 1970-01-01
                相关资源
                最近更新 更多