2011-06-03 19 views
10

De acuerdo con The Java Tutorials, en Java SE 7 y posterior, puede usar un objeto String en la expresión de la instrucción switch.Sentencia de cambio de Java 7 con cadenas que no funcionan

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

¿Pero es esto cierto? He instalado el JRE y añadí a la trayectoria de la estructura de mi proyecto Eclipse, pero yo estoy recibiendo el siguiente error en tiempo de compilación:

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

Además, creo que lo tengo configurado correctamente desde que Pudo usar su clase java.nio.file.Files, así como JLayer.

¿Alguna idea?

+5

¿Tiene un Eclipse IDE habilitado recientemente para Java 7? ¿Qué versión está utilizando? ¡Eclipse trae su propio compilador de Java! – Daniel

+1

Sí, intento compilarlo fuera de Eclipse y ver si funciona. –

+0

@Daniel, creo que soy ingenuo cuando se trata de IDEs. Pensé que configurar la ruta de compilación con el JRE apropiado podría arreglar las cosas, ya que las características específicas de jdk7 se están compilando y ejecutando con Eclipse. Supongo que simplemente me pilló desprevenido cuando esta característica tampoco se compiló/ejecutó. Espero que no estuvieras siendo sarcástico ... – mre

Respuesta

12

Si bien es cierto que el equipo JDT ha implementado el Switch on String feature, el soporte para Java 7 no será antes de Eclipse 3.7.1:

Ver 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

¿Alguna fecha de lanzamiento para 3.7.1? ¿En el mismo día? –

+0

@Bart: ver http://wiki.eclipse.org/Indigo/Simultaneous_Release_Plan#SR1 "GA: 9/23/2011 (cuarto viernes de septiembre)" – VonC

+2

2 meses después? Ay ... Bueno, usaré la versión beta. –

1

Eclipse no admite aún la compilación en JDK 7, para probar la nueva función que necesita para usar NetBeans 7 o compilar con compilador javac estándar en el paquete del JDK 7 a mano o con la ayuda de un script ant.

0

Uso Eclipse 3.8 (primer hito llegó hace algunos días). No se olvide de establecer la configuración del compilador en Java 7.

+1

y cómo lo haces? –

Cuestiones relacionadas