84 votes

Java Enums : Liste les valeurs énumérées d'une classe< ? extends Enum>

J'ai l'objet class pour un enum (j'ai un Class<? extends Enum>) et j'ai besoin d'obtenir une liste des valeurs énumérées représentées par cet enum. La fonction statique values a ce dont j'ai besoin, mais je ne sais pas comment y accéder à partir de l'objet de classe.

160voto

Tom Hawtin - tackline Points 82671

21voto

Yishai Points 42417

Si vous connaissez le nom de la valeur dont vous avez besoin :

     Class<? extends Enum> klass = ... 
     Enum<?> x = Enum.valueOf(klass, "NAME");

Si ce n'est pas le cas, vous pouvez en obtenir un tableau (comme Tom l'a fait en premier) :

     klass.getEnumConstants();

13voto

dfa Points 54490

utiliser la réflexion est simple comme appeler Class#getEnumConstants() :

List<Enum<?>> enum2list(Class<? extends Enum<?>> cls) {
   return Arrays.asList(cls.getEnumConstants());
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X