10

根据The Java Tutorials,在Java SE 7及更高版本中,您可以在 switch 语句的表达式中使用 String 对象。

String s = ...
switch(s){
    //do stuff
}

但这是真的吗?我已经安装了 JRE 并将其添加到我的 Eclipse 项目的构建路径中,但是我收到以下编译时错误:

无法打开 String 类型的值。只允许可转换的 int 值或枚举常量

另外,我认为我已经正确配置了它,因为我能够使用它的java.nio.file.Files类以及JLayer.

有任何想法吗?

4

3 回答 3

12

虽然 JDT 团队确实实现了Switch on String 功能,但在 Eclipse 3.7.1 之前不会支持 Java 7:

请参阅错误 288548

由于 JSR-292 (Invoke Dynamic) 和 JSR-334 (Project Coin) 的可用性较晚,并且由于 Java 7 的正式发布日期(2011 年 7 月 28 日)在 3.7 之后,我们不得不推迟对 Java 7 的支持到 3.7 .1。尚未决定这是否将作为 3.7.1 下载的一部分或作为单独的功能更新提供。

Java 7 功能的工作目前在“BETA_JAVA7”分支中进行,我们将为稳定版本提供单独的更新,以便为感兴趣的各方提供对 Java 7 功能的早期访问。

于 2011-06-03T19:52:04.443 回答
1

Eclipse 尚不支持在 JDK 7 上编译,要尝试使用 NetBeans 7 所需的新功能,或者使用 JDK 7 捆绑包中的标准 javac 编译器手动编译或借助 ant 脚本进行编译。

于 2011-06-03T19:49:10.440 回答
0

使用 Eclipse 3.8(第一个里程碑是几天前出现的)。不要忘记将编译器设置设置为 Java 7。

于 2011-08-12T13:42:07.047 回答