126 votes

Comment obtenir toutes les valeurs énumérées en Java ?

Je suis tombé sur ce problème où, sans connaître le type d'enum réel dont j'ai besoin, je dois itérer sur ses valeurs possibles.

if (value instanceof Enum){
   Enum enumValue = (Enum)value;
}

Des idées sur comment extraire les valeurs possibles de enumValue ?

7voto

Ashwani Sharma Points 132

Ici, Role est une énumération qui contient les valeurs suivantes [ADMIN, USER, OTHER].

List roleList = Arrays.asList(Role.values());
roleList.forEach(role -> {
    System.out.println(role);
    });

6voto

David Lilljegren Points 525

On peut également utiliser java.util.EnumSet de cette manière

@Test
void test(){
    Enum aEnum =DayOfWeek.MONDAY;
    printAll(aEnum);
}

void printAll(Enum value){
    Set allValues = EnumSet.allOf(value.getClass());
    System.out.println(allValues);
}

3voto

Toute personne qui essaie de récupérer toutes les valeurs sous forme de liste peut simplement le faire.

Arrays.asList(VotreClasseEnum.valeurs())

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