2013-07-05 18 views
20

C'è un modo integrato per ottenere il numero di elementi di un Enum con qualcosa di simile Myenum.length,Come ottenere il numero di possibili oggetti di un Enum?

Oppure devo implementare me stesso una funzione int size() hardcording il numero di elemento?

+1

Stai parlando di enumerazione o enumerazione? Questi non sono gli stessi. –

+0

Stavo parlando di enumerazioni. Il problema è che in enumerazione francese è una scorciatoia per "enumerazione" (come in inglese tendo a pensare). quindi non stava parlando dell'interfaccia. – AdrieanKhisbe

+1

OK, ho modificato la tua domanda per renderla più chiara. –

risposta

38

Sì, è possibile utilizzare il metodo Enum.values() per ottenere un array di valori Enum, quindi utilizzare la proprietà length.

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

È possibile ottenere la lunghezza utilizzando Myenum.values().length

Il Enum.values() restituisce un array di tutti i enum costanti. È possibile utilizzare la variabile length di questo array per ottenere il numero di costanti enum.

Supponendo di avere il seguente enum:

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

La seguente dichiarazione assegnerà 5-size:

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

'length' non è un metodo di un array, è un campo di proprietà, quindi lo userai senza parentesi. –

+0

@CyrilleKa: grazie per la notifica. Corretto :) –

3

MyEnum.values() restituisce le costanti enum come un array.

modo da poter utilizzare: il metodo

int size = MyEnum.values().length 
Problemi correlati