Java 7 switch语句,字符串不起作用

时间:2011-06-03 19:44:12

标签: java eclipse string switch-statement java-7

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

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

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

  

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

此外,我认为我已正确配置,因为我可以使用其java.nio.file.Files课程,以及JLayer

有什么想法吗?

3 个答案:

答案 0 :(得分:12)

虽然JDT团队确实已经实现了Switch on String feature,但是对Java 7的支持将不会出现在Eclipse 3.7.1之前:

请参阅bug 288548

  

由于JSR-292(Invoke Dynamic)和JSR-334(项目硬币)的可用性较晚   由于Java 7的官方发布日期(2011年7月28日)在3.7之后   我们不得不将Java 7支持推迟到3.7.1。它还没有决定   是否可以作为3.7.1下载的一部分或单独提供   功能更新。

     

目前正在'BETA_JAVA7'中开展Java 7功能的工作   分支,我们将为稳定版本提供单独的更新   为感兴趣的各方提供Java 7功能的早期访问。

答案 1 :(得分:1)

Eclipse不支持在JDK 7上进行编译,因为尝试使用NetBeans 7所需的新功能,或者手动或在ant脚本的帮助下使用JDK 7包中的标准javac编译器进行编译。 / p>

答案 2 :(得分:0)

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