2013-07-05 39 views
20

有一個內置的方式來獲得的東西,如Myenum.length枚舉的項目的數量,如何獲取一個枚舉的可能項目的數量?

還是我必須要實現自己的功能int size() hardcording元素的數量?

+1

你在說枚舉或枚舉嗎?這些不一樣。 –

+0

正在談論枚舉。問題在於,法語中的枚舉是「列舉」的簡寫形式(正如英語中我傾向於思考的那樣)。所以沒有說到界面。 – AdrieanKhisbe

+1

好吧,我編輯你的問題,使其更清楚。 –

回答

38

是的,你可以使用Enum.values()方法得到一個Enum值的數組,然後使用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

您可以通過使用Myenum.values().length

Enum.values()返回所有enum常量數組得到的長度。您可以使用此數組的length變量來獲取enum常量的數量。

假設你有以下枚舉:

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

下面的語句將分配5到size

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

'length'不是一個數組的方法,它是一個屬性字段,所以你可以在沒有括號的情況下使用它。 –

+0

@CyrilleKa:謝謝你的通知。更正它。 :) –

3

MyEnum.values()返回枚舉常量數組。

所以,你可以使用:由Java編譯器添加

int size = MyEnum.values().length