2010-11-17 24 views
13

Makine public enum Machine{...} olarak tanımlandıJava dizi enum değerleri

_machinesprivate Machine[] _machines;

olarak tanımlandı Neden bu işe yaramıyor:

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

hata iletisi:

illegal start ifade

Teşekkürler beyler!

+2

Benzer: http://stackoverflow.com/questions/3504849/java-weird-array-behavior/3504872#3504872 Bir [EnumSet] içine bakmak isteyebilirsiniz – missingfaktor

+1

(http://docs.oracle com/javase/6/docs/aPI/java/util/EnumSet.html). – Eva

cevap

36

Dizi bildiriminin küçük bir bölümünü kaçırıyorsunuz.

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

Çalışıyor. Hızlı cevabınız için çok teşekkür ederim. – lonelyloner

+0

@David, yardım etmekten memnunum! – jjnguy

+3

'Machine.a, Machine.b', a, b' için basitleştirilebilir. Önek gereksizdir, çünkü Makine enumlarının bir dizisi yalnızca Makine enumlarını içerebilir. – ceving

2

Bu, bir boyut verirseniz ilk önce boş olarak bildirilebilir.

_machines = new Machine[size]; 
+0

Bunun OP’in durumundan farklı olduğunu unutmayın. Bu, null değerlere sahip bir diziyi başlatır, oysa OP önceden tanımlanmış null olmayan değerlerle başlatılmasını ister. –