enum à plusieurs membres et switch - Java - Programmation
Marsh Posté le 21-12-2007 à 19:13:04
Faut pas utiliser l'ID, faut directement utiliser l'enum
Marsh Posté le 21-12-2007 à 20:43:26
masklinn a écrit : Faut pas utiliser l'ID, faut directement utiliser l'enum |
Tu veux dire comme ca ?
Code :
|
Ca me sort un joli "Type mismatch: cannot convert from SubmenuItems to int"
Ce qui est comprehensible vu que MENU_NEW contient effectivement plusieurs champs, j'imagine qu'il faut lui specifier quand même d'une facon ou d'une autre celui qu'on veut utiliser ..
Marsh Posté le 21-12-2007 à 20:47:43
Sp4M- a écrit :
|
et pourquoi passe tu "l'index" de ton enum a la place de passer l'enum directement a ta méthode ?
Marsh Posté le 21-12-2007 à 20:54:05
zapan666 a écrit : |
Hum, à vrai dire parce que j'ai pas "tellement" le choix ... je travaille sur un enorme projet qui a été codé ainsi, et je ne dispose ici que de l'index de cet enum ... Mais ce serait effectivement surement plus simple de faire le switch sur l'enum complet si je pouvais, comme tu dis.
Si il n'y a vraiment aucune autre solution, j'essayerais de modifier le code pour recuperer l'enum plus tôt dans le code...
Mais je voulais m'assurer avant qu'il n'y avait pas une solution plus "soft"
Marsh Posté le 21-12-2007 à 21:06:37
Sp4M- a écrit : |
Crée une méthode statique dans ton énum genre fromId qui te servira à convertir ton ID moisi en un beau objet de l'enum.
Marsh Posté le 21-12-2007 à 21:24:17
masklinn a écrit : un beau objet de l'enum. |
Hum .. On peut instancier un enum ?
J'ai quand même testé par curiosité mais : Cannot instantiate the type SubmenuItems
Marsh Posté le 21-12-2007 à 21:27:46
Cela dit, le problème semble s'etendre un peu plus que ca ...
Même avec un
Code :
|
On arrive à un : The enum constant SubmenuItems.MENU_NEW reference cannot be qualified in a case label
La j'suis un peu perdu pour le coup ...
Marsh Posté le 21-12-2007 à 21:28:31
masklinn a écrit : |
Code :
|
?
Marsh Posté le 21-12-2007 à 21:36:31
zapan666 a écrit :
? |
Aussi, mais c'est sale
Marsh Posté le 21-12-2007 à 21:39:02
Ah oui aussi ... c'est un peu cowboy mais pourquoi pas, merci à vous deux
Cela dit, ca nous renvoit à l'autre probleme :
Code :
|
Renvoit : The enum constant SubmenuItems.MENU_NEW reference cannot be qualified in a case label
Marsh Posté le 22-12-2007 à 00:41:47
Bon je me repond à moi même, mais voila la solution si ca interesse quelqu'un ...
Ce n'est pas :
Code :
|
mais (avec la methode cowboy de zapan666) :
Code :
|
ou :
Code :
|
Si on veut faire effectivement plus propre.
merci
Marsh Posté le 14-02-2008 à 22:19:48
Sp4M- a écrit : Ah oui aussi ... c'est un peu cowboy mais pourquoi pas, merci à vous deux
|
Si tu fais d'abord un:
Code :
|
tu peux ensuite faire un case:
Code :
|
Marsh Posté le 21-12-2007 à 17:46:17
Bonjour,
j'ai un petit soucis actuellement avec l'enum de java, que je souhaite utiliser avec un switch.
Basiquement, je voudrais utiliser le switch sur un type int (qui est final comme il se doit pour etre connu à la compilation),
mais j'obtiens quand même le traditionnel "case expressions must be constant expressions".
Voila le code de mon enum :
Et le switch :
Aurais-je raté quelque chose dans la déclaration de mon enum ?