2012-08-01 16 views
9

Sto usando Eclipse per sviluppare un programma Java. Ho dovuto eseguire il downgrade di JRE e JDK da 1.7x a 1.6. Ora tutto punta a 1.6.x (inclusa la conformità JRE e JDK installata)."Impossibile attivare un valore di tipo String per il livello sorgente di seguito .." Errore in Eclipse

Ma ora Eclipse mi dà ancora un errore sulla dichiarazione switch, indicando:

non può passare su un valore di tipo stringa per livello di sorgente sotto 1.7. Sono consentiti solo convertibile valori int o costanti enum

sul codice qui sotto:

Switch("test") // Which is fine with 1.7.x 

ho rimosso 1.7.x dal calcolatore, non so perché è ancora alla ricerca di 1,7 invece di 1,6?

risposta

2

switch(String) è la sintassi applicabile da Java 7 in poi. Perché hai 1.6 che non supporta switch (String), eclipse che genera errori di compilazione.

Change switch(String)-switch(int)

2

In realtà, il codice non è valido su 1.6. Non puoi fare un cambio su una stringa.

20

L'attivazione delle stringhe è stata introdotta in Java 1.7!

Il messaggio di errore è previsto quando si esegue il downgrade a Java 1.6. In quella versione puoi solo attivare tipi ed enumerazioni primitive.

questione connessa:

2

In Java 4 e prima che si possa usare solo interruttore sul boolean, char, short, byte, int tipi.

In Java 5 e 6 è possibile utilizzare lo switch Enum s in aggiunta ai tipi precedenti.

E solo Java 7 supporta l'accensione String s.

13

Fare clic con il tasto destro del mouse sul progetto, andare su Proprietà. Seleziona Java Compiler dal menu di sinistra. Seleziona il tuo livello di conformità (1.7 o 1.6). 1.7 interromperà quel messaggio. 1.6, come altri hanno detto prima, non ti permetteranno di usare le stringhe.

+0

Grazie per la semplice passeggiata-through! – DrupalFever

1

Ho affrontato lo stesso problema quando ho provato a distribuire utilizzando lo strumento Ant.

La soluzione che ha funzionato per me è stato:

  • Fare clic destro sul progetto e quindi fare clic su Proprietà
  • Vai a Java Build Path
  • Vai alla JRE Sistema Bibliotecario
  • Execution Environment è stato selezionato ; Io invece selezionato alternativo JRE e poi jre7 (come illustrato di seguito)

enter image description here

Problemi correlati