en utilisant des classes internes dans Java - enum
J'ai une question très précise qui a à faire avec un intérieur de classe. Permettez-moi de vous montrer un exemple de code:
class Foo {
MYOPTIONS temp;
public static enum MYOPTIONS {
OPTION1, OPTION2, OPTION3;
}
}
Donc cette énumération est à l'intérieur de la classe Foo. Maintenant ce que je veux faire est de définir la variable temp comme l'une des trois options, mais le faire en dehors de la classe Foo, disons d'une classe appelée Externe. Malheureusement, je ne peut pas avoir une méthode de jeu pour le faire parce que External.setTemp (MYOPTIONS.OPTION1)
n'est pas valide, car l'enum n'est pas visible dans la classe externe.
Donc, la seule chose qui me vient en tête est de trois méthodes dans la classe Foo:
public void setTempOption1 () {this.temp=MYOPTIONS.OPTION1;}
public void setTempOption2 () {this.temp=MYOPTIONS.OPTION2;}
public void setTempOption3 () {this.temp=MYOPTIONS.OPTION3;}
Évidemment l'autre option consiste à modifier l'énumération et ont un intérieur de classe.
Existe-il d'autres options que je suis absent?
Grâce
source d'informationauteur sakis kaliakoudas
Vous devez vous connecter pour publier un commentaire.
Le nom entier de la MYOPTIONS contient l'incorporation nom de la classe.
La déclaration est valide, mais vous avez à l'utiliser de cette façon:
Il vous manque le nom de la classe lorsque vous utilisez le "enum".
Vous pouvez le faire comme ceci:
Bien que je recommanderais à l'extériorisation
MYOPTIONS
.Vous devez vous référer à
Foo
lors de l'utilisation de laMYPOTIONS
enum:En supposant que la classe
Foo
est dans le paquetfoo
(vous devriez toujours organiser classes en paquets), alors vous pouvez aussi utiliser statique des importationspour faire de votre code un peu plus propre: