Bonjour,
Je constate qu'un code utilisant un switch sur une enum me génère un fichier .class supplémentaire. Quelqu'un en connait la raison ?
Un peu plus en détail.
public class Joueur{
private Couleur nom;
public Joueur(Couleur unNom){
nom = unNom;
}
public Couleur getNom(){
return nom;
}
@Override
public String toString(){
String s = "";
switch(nom){
case ROUGE : s = "joueurRouge";break;
case JAUNE : s = "joueurJaune";break;
}
return s;
}
@Override
public boolean equals(Object obj){
if( !(obj instanceof Joueur))
return false;
Joueur autreJoueur = (Joueur) obj;
return nom == autreJoueur.nom;
}
@Override
public int hashCode(){
return nom.toString().hashCode();
}
}
(J'ai retiré les commentaires). Si je compile, j'obtiens deux fichiers; Joueur.class et Joueur$1.class. Si je commente le switch le deuxième fichier disparait. L'enum Couleur est définie dans un autre fichier.
Une info ?
# Stackoverflow
Posté par PiT (site web personnel) . Évalué à 1.
J'envoie moi-même des éléments de réponses (merci mon collègue pour le lien)
http://stackoverflow.com/questions/1834632/java-enum-and-additional-class-files
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.