2011-06-03 57 views
10

根據The Java Tutorials,在Java SE 7及更高版本中,可以在switch語句的表達式中使用String對象。Java 7 switch語句不能使用字符串

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

但這是真的嗎?我已經安裝了JRE,並把它添加到我的Eclipse項目的構建路徑,但我得到了下面的編譯時錯誤:

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

另外,我想我已經得到了它,因爲我正確配置能夠使用它的java.nio.file.Files類,以及JLayer

任何想法?

+5

您是否有最近使用Java 7的Eclipse IDE?你正在使用哪個版本? Eclipse帶來了自己的Java編譯器! – Daniel 2011-06-03 19:45:31

+1

是的,試圖在Eclipse之外編譯它,看它是否工作。 – 2011-06-03 19:46:40

+0

@Daniel,我想我對IDE很幼稚。我認爲使用適當的JRE配置構建路徑會讓事情變得順利,看到特定於jdk7的功能正在使用Eclipse進行編譯和運行。當這個功能沒有編譯/運行的時候,我想我只是被忽視了。我希望你不要被嘲諷... – mre 2011-06-03 20:08:42

回答

12

雖然這是事實,JDT團隊已經實現了Switch on String feature,對Java 7的支持不會是Eclipse的3.7.1之前:

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.

+0

任何發佈日期爲3.7.1?在同一天? – 2011-07-21 15:10:19

+0

@Bart:請參閱http://wiki.eclipse.org/Indigo/Simultaneous_Release_Plan#SR1「GA:9/23/2011(9月第四個星期五)」 – VonC 2011-07-21 17:16:12

+2

2個月後? Ouch ......哦,我會用測試版。 – 2011-07-21 18:47:23

1

Eclipse不支持在JDK 7上進行編譯,嘗試使用NetBeans 7或使用標準javac編譯器在JDK 7的包中手動或藉助ant腳本編譯所需的新功能。

0

使用Eclipse 3.8(第一個里程碑來自前幾天)。不要忘記將編譯器設置設置爲Java 7.

+1

你是怎麼做到的? – 2011-10-16 00:14:56

相關問題