cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020
-
4 mars 2009 à 23:01
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
5 mars 2009 à 07:44
bonjour a tous, j'ai fais une fonction toString() pour un enum, elle fonctionne mais je pense qu'elle peut être améliorée, cependant je ne vois pas comment.
Je compte sur vous...
public enum Symbole {
maison,
ballon,
etoile,
fanion,
arbres;
public static int NBR_SYMBOLE=Symbole.values().length;
public static int getNBR_SYMBOLE() {
return NBR_SYMBOLE;
}
public static void setNBR_SYMBOLE(int nbr_symbole) {
NBR_SYMBOLE = nbr_symbole;
}
public String toString() {
int num=0;
String res="";
Symbole[] tableauSymbole=Symbole.values();
for(int i=0;i<NBR_SYMBOLE;i++){
if(this==tableauSymbole[i]){
num=i;
}
}
switch(num){
case 0: res+="maison";
break;
case 1: res+="ballon";
break;
case 2: res+="etoile";
break;
case 3: res+="fanion";
break;
case 4: res+="arbres";
break;
}
return res;
}
Depuis quelque temps, je fais beaucoup appel a ce forum pour me venir en aire, je vous remercie tous, en particulier DarkSidious qui a répondu a absolument toutes les questions que j'ai posé pour l'instant.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 mars 2009 à 03:28
salut
cette fonction existe deja, tu n'es pas oblige de la definir toi meme.
si tu y tiens vraiment, alors tu peux utiliser :
num = this.ordinal();
a la place de :
for(int i=0;i<NBR_SYMBOLE;i++){
if(this==tableauSymbole[i]){
num=i;
}
}
Sinon, concernant ton enum :
public enum Symbole {
maison,
ballon,
etoile,
fanion,
arbres;
public static int NBR_SYMBOLE=Symbole.values().length; // à quoi ca sert ?
public static int getNBR_SYMBOLE() { // à remplacer par un ordinal comme l'a indiqué notre ami coucou747
return NBR_SYMBOLE;
}
public static void setNBR_SYMBOLE(int nbr_symbole) { // à quoi ca sert ???Le but n'est pas de savoir combien de symbole tu as ? NBR_SYMBOLE = nbr_symbole;
}
public String toString() { // Quel est son rôle ? Retourner l'élément courant ou la liste des éléments ? Dans ton cas, elle ne renverra que l'élément courant, elle se serait plus simple en stockant le nom de l'élément directement dans l'enum... int num=0;
String res="";
Symbole[] tableauSymbole=Symbole.values();
for(int i=0;i<NBR_SYMBOLE;i++){
if(this==tableauSymbole[i]){
num=i;
}
}
switch(num){
case 0: res+="maison";
break;
case 1: res+="ballon";
break;
case 2: res+="etoile";
break;
case 3: res+="fanion";
break;
case 4: res+="arbres";
break;
}
return res;
}
Si tu veux, tu peux aller voir ma source de la liste des départements pour voir un exemple concret d'une enum "qui fait papa maman"
______________________________________
DarK Sidious