J'utilise Eclipse pour développer un programme Java. J'ai dû rétrograder JRE et JDK de 1,7x à 1,6. Maintenant, tout pointe vers 1.6.x (y compris la conformité JRE installée et JDK).
Mais maintenant, Eclipse me donne toujours une erreur sur la déclaration switch
, indiquant:
Impossible d'activer une valeur de type String pour un niveau de source inférieur à 1.7. Seules les valeurs int convertibles ou les constantes enum sont autorisées
sur le code ci-dessous:
Switch("test") // Which is fine with 1.7.x
J'ai enlevé 1.7.x de l'ordinateur, je ne sais pas pourquoi il cherche toujours 1.7 au lieu de 1.6?
La commutation sur les chaînes a été introduite dans Java 1.7!
Le message d'erreur est attendu lorsque vous rétrogradez en Java 1.6. Dans cette version, vous ne pouvez activer que des types primitifs et des énumérations.
Question connexe:
Faites un clic droit sur votre projet, allez dans Propriétés. Sélectionnez Compilateur Java dans le menu de gauche. Sélectionnez votre niveau de conformité (1.7 ou 1.6). 1.7 arrêtera ce message. 1.6, comme d'autres l'ont déjà dit, ne vous laissera pas utiliser de chaînes.
switch(String)
est la syntaxe applicable à partir de Java 7. Parce que vous avez 1.6 qui ne supporte pas switch (String), Eclipse donne une erreur de compilation.
Remplacez switch(String)
par switch(int)
En fait, votre code n'est pas valide sur 1.6. Vous ne pouvez pas changer de chaîne.
Dans Java 4 et les versions antérieures, vous ne pouviez utiliser que les types d'activation boolean
, char
, short
, byte
, int
.
En Java 5 et 6, vous pouvez utiliser switch on Enum
s en plus des types précédents.
Et seul Java 7 prend en charge l’option String
s.
J'ai rencontré le même problème lorsque j'ai essayé de déployer à l'aide de l'outil Ant.
La solution qui a fonctionné pour moi était: