Forum Programmation.java Enum et classe interne

Posté par  (site web personnel) .
Étiquettes : aucune
0
27
mar.
2012

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 ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.