根据The Java Tutorials,在Java SE 7及更高版本中,您可以在switch语句的表达式中使用String对象。
String s = ...
switch(s){
//do stuff
}
但这是真的吗?我已经安装了JRE并将其添加到我的Eclipse项目的构建路径中,但是我收到了以下编译时错误:
无法打开类型的值 串。只有可转换的int值或 允许使用枚举常量
此外,我认为我已正确配置,因为我可以使用其java.nio.file.Files
课程,以及JLayer
。
有什么想法吗?
答案 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。