2013-07-05 22 views
20

Myenum.length gibi bir şeyle bir Enum öğe sayısını almak için yerleşik bir yolu var mı,Bir Enum öğesinin olası öğesi nasıl alınır?

Ya kendime eleman sayısını hardcording bir işlevi int size() uygulamak gerekiyor?

+1

Eğer çeteleler veya Numaralama bahsediyoruz? Bunlar aynı değil. –

+0

Enumlar hakkında konuşuyordum. Sorun şu ki, fransız enumlarda "numaralandırma" için bir kısaydı. (Ingilizcede olduğu gibi düşünmeyi düşünüyorum). Bu yüzden arayüzden konuşmuyordu. – AdrieanKhisbe

+1

Tamam, sorunuzu daha açık hale getirmek için düzenledim. –

cevap

38

Evet, Enum değerleri dizisini almak için Enum.values() yöntemini kullanabilirsiniz, ardından length özelliğini kullanın.

public class Main { 
    enum WORKDAYS { Monday, Tuesday, Wednesday, Thursday, Friday; } 

    public static void main(String[] args) { 
     System.out.println(WORKDAYS.values().length); 
     // prints 5 
    } 
} 

http://ideone.com/zMB6pG

9

Sen Enum.values() tüm enum sabitleri dizisi döndürür Myenum.values().length

kullanarak uzunluk alabilirsiniz. enum sabitlerinin sayısını almak için bu dizinin length değişkenini kullanabilirsiniz.

aşağıdaki enum var varsayarsak:

public enum Color 
{ 
    BLACK,WHITE,BLUE,GREEN,RED 
} 

aşağıdaki deyimi 5 size atayacağı:

int size = Color.values().length; 
+4

'length' bir dizinin yöntemi değil, bir özellik alanıdır, dolayısıyla parantez kullanmadan kullanabilirsiniz. –

+0

@CyrilleKa: Bildirdiğiniz için teşekkür ederiz. Düzeltildi. :) –

3

MyEnum.values() bir dizi olarak enum sabitlerini döndürür.

Yani kullanabilirsiniz:

int size = MyEnum.values().length 
İlgili konular