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

mre*_*mre 10 java eclipse string switch-statement java-7

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

String s = ...
switch(s){
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

有任何想法吗?

Von*_*onC 12

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

错误288548:

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

对于Java 7的功能的工作目前正在进行中的"BETA_JAVA7"分支和稳定建立,以提供对Java 7的功能有关各方早日进入我们将提供单独的更新.

  • 两个月后?哎哟......好吧,我只会使用测试版. (2认同)