2010-11-17 23 views
13

La machine est définie comme public enum Machine{...}tableau Java de valeurs ENUM

_machines est défini comme private Machine[] _machines;

Je ne sais pas pourquoi cela ne fonctionne pas:

_machines = {Machine.a, Machine.b}; 

message d'erreur:

début d'expression illégal

Merci les gars!

+2

similaires: http://stackoverflow.com/questions/3504849/java-weird-array-behavior/3504872#3504872 – missingfaktor

+1

Vous pouvez regarder dans un [EnumSet] (http://docs.oracle .com/javase/6/docs/api/java/util/EnumSet.html). – Eva

Répondre

36

Il vous manque une petite partie de la déclaration Array.

_machines = new Machine[]{Machine.a, Machine.b}; 
+0

Travail. Merci beaucoup pour votre réponse rapide. – lonelyloner

+0

@David, heureux de vous aider! – jjnguy

+3

'Machine.a, Machine.b' peut être simplifié en' a, b'. Le préfixe est redondant, car un tableau d'énumérations de machine ne peut contenir que des énumérations de machine. – ceving

2

Ceci peut aussi être déclaré vide au début si vous lui donnez une taille.

_machines = new Machine[size]; 
+0

Notez que ceci est différent du cas d'OP. Ceci initialise un tableau avec des valeurs nulles, alors que OP demande de l'initialiser avec des valeurs non nulles prédéfinies. –