Java 7 switch statement with strings not working

﹥>﹥吖頭↗ 提交于 2019-12-22 03:48:51

问题


According to The Java Tutorials, in Java SE 7 and later, you can use a String object in the switch statement's expression.

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

But is this true? I've installed the JRE and added it to the build path of my Eclipse project, but I'm getting the following compile-time error:

Cannot switch on a value of type String. Only convertible int values or enum constants are permitted

Also, I think I've got it configured correctly since I was able to use its java.nio.file.Files class, as well as JLayer.

Any ideas?


回答1:


While it is true that the JDT team has implemented the Switch on String feature, the support for Java 7 won't be before Eclipse 3.7.1:

See bug 288548:

Due to late availability of JSR-292 (Invoke Dynamic) and JSR-334 (Project Coin) and due to the official release date (July 28, 2011) of Java 7 being after 3.7 ships we had to defer the Java 7 support to 3.7.1. It has not yet been decided whether this will be available as part of the 3.7.1 downloads or as separate feature update.

The work for the Java 7 features is currently in progress in the 'BETA_JAVA7' branch and we will deliver separate updates for the stable builds in order to provide early access to the Java 7 features for interested parties.




回答2:


Eclipse doesn't support yet compilation on JDK 7, for try the new feature you need to use NetBeans 7 or compile with standard javac compiler in the bundle of the JDK 7 by hand or with the help of an ant script.




回答3:


Use Eclipse 3.8 (first milestone came some days ago). Don't forget to set the compiler settings to Java 7.



来源:https://stackoverflow.com/questions/6231907/java-7-switch-statement-with-strings-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!