Enum java de type string
Résolu
Flog78
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Voila je voudrai déclarer une variable de type String, qui ne puisse prendre des valeurs que parmi une liste de String que j'aurais défini, de la même facon que les énumeré dans les base de donnée.
Par exemple je déclare une variable mobilier de type String, qui ne peut prendre que les valeurs "table", "chaise" et "bureau".
Le but est que si dans mon code je fait
mobilier = "chaise"; le compilo ne dit rien et que si je fait
mobilier = "armoire"; le compilo dit que c'est impossible.
Merci d'avance.
Voila je voudrai déclarer une variable de type String, qui ne puisse prendre des valeurs que parmi une liste de String que j'aurais défini, de la même facon que les énumeré dans les base de donnée.
Par exemple je déclare une variable mobilier de type String, qui ne peut prendre que les valeurs "table", "chaise" et "bureau".
Le but est que si dans mon code je fait
mobilier = "chaise"; le compilo ne dit rien et que si je fait
mobilier = "armoire"; le compilo dit que c'est impossible.
Merci d'avance.
A voir également:
- Enum java de type string
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Les enum sont une bonne idée, d'autant qu'en Java ce sont des classes puissantes auquel on peut rajouter des champs, constructeurs et méthodes, pour les manipuler comme on veut :
Déclaration simple :
Déclaration riche :
Remarque : s'il s'agit juste de modifier le toString pour mettre le nom de l'enum en minuscules, le champs str est inutile et on pourrait faire directement comme ça :
Déclaration simple :
enum Mobilier { TABLE, CHAISE, BUREAU } public class Test { public static void main(String[] args) { Mobilier mobilier = Mobilier.CHAISE; System.out.println(mobilier); // "CHAISE" } }
Déclaration riche :
enum Mobilier { // Les objets énumérés sont forcément au début de la déclaration // Ils doivent faire appel à un des constructeurs définis TABLE("table"), CHAISE("chaise"), BUREAU("bureau"); private String str; // Les constructeurs ne peuvent pas être protected ou public private Mobilier(String val) { str = val; } public String toString() { return str; } } public class Test { public static void main(String[] args) { Mobilier mobilier = Mobilier.CHAISE; System.out.println(mobilier); // "chaise" } }
Remarque : s'il s'agit juste de modifier le toString pour mettre le nom de l'enum en minuscules, le champs str est inutile et on pourrait faire directement comme ça :
enum Mobilier { TABLE, CHAISE, BUREAU; public String toString() { return super.toString().toLowerCase(); } } public class Test { public static void main(String[] args) { Mobilier mobilier = Mobilier.CHAISE; System.out.println(mobilier); // "chaise" } }
Flog78
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
4
Et si l'utilisateur saisie un mot, comment je fait pour vérifier qu'il est dans mon enum ?
KX
Messages postés
16761
Date d'inscription
Statut
Modérateur
Dernière intervention
3 020
Tu peux utiliser la méthode values() des Enum, par exemple comme ceci :