96 votes

Remplir une liste avec toutes les valeurs d'un enum en Java

Je voudrais remplir une liste avec toutes les valeurs possibles d'un enum.
Puisque je suis récemment tombée amoureuse de EnumSet J'ai tiré parti allOf()

EnumSet<Something> all = EnumSet.allOf( Something.class);
List<Something> list = new ArrayList<>( all.size());
for (Something s : all) {
    list.add( s);
}
return list;

Y a-t-il un meilleur moyen (comme dans une phrase non obscurcie) pour obtenir le même résultat ?

0voto

BlackVegetable Points 2887

C'est un peu plus lisible :

Object[] allValues = all.getDeclaringClass().getEnumConstants();

0voto

Joshua Points 2081

Essayez ça :

... = new ArrayList<Something>(EnumSet.allOf(Something.class));

comme ArrayList a un constructeur avec Collection<? extends E> . Mais n'utilisez cette méthode que si vous voulez vraiment utiliser EnumSet .

Tous les enums ont accès à la méthode values() . Il retourne un tableau de toutes les valeurs de l'enum :

... = Arrays.asList(Something.values());

0voto

Topera Points 4941

Vous pouvez également utiliser :

Collections.singletonList(Something.values())

-3voto

private ComboBox gender;
private enum Selgender{Male,Famle};
ObservableList<Object> observableList  =FXCollections.observableArrayList(Selgender.values());

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