2010-11-17 7 views
13

máquina se define como public enum Machine{...}gama de Java de enumeración valora

_machines se define como private Machine[] _machines;

No sabemos por qué esto no funciona: Mensaje de

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

error:

comienzo ilegal de la expresión

¡Gracias a todos!

+2

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

+1

Es posible que desee ver en una [EnumSet] (http://docs.oracle .com/javase/6/docs/api/java/util/EnumSet.html). – Eva

Respuesta

36

Falta una pequeña parte de la declaración Array.

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

trabajando. Muchas gracias por tu rápida respuesta. – lonelyloner

+0

@David, me alegro de ayudar! – jjnguy

+3

'Machine.a, Machine.b' se puede simplificar a' a, b'. El prefijo es redundante, porque una matriz de enumeraciones de la máquina solo puede contener enumeraciones de la máquina. – ceving

2

Esto también se puede declarar vacío al principio si le da un tamaño.

_machines = new Machine[size]; 
+0

Tenga en cuenta que esto es diferente del caso de OP. Esto inicializa una matriz con valores nulos, mientras que OP pregunta por inicializarla con valores no nulos predefinidos. –