2013-07-05 7 views
20

Myenum.lengthようなもので列挙型の項目の数を取得するための組み込みの方法はありEnumの可能な項目の数を取得するには?

または私は自分自身の要素の数をhardcording機能int size()を実装する必要がありますか?

+1

enumまたはenumerationについて話していますか?これらは同じではありません。 –

+0

enumについて話していました。問題はフランス語の列挙型は「列挙」の略語です(英語のように私は思う傾向があります)。インタフェースについては言及していませんでした。 – AdrieanKhisbe

+1

OK、あなたの質問を編集してより明確にしました。 –

答えて

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

あなたはEnum.values()はすべてenum定数の配列を返しますMyenum.values().length

を使って長さを得ることができます。この配列の変数lengthを使用して、enumの定数を取得できます。

次の列挙型を持っていると仮定すると:

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

次の文は、sizeに5を代入します:

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

'length'は配列のメソッドではありません。これはプロパティフィールドなので、括弧なしで使用します。 –

+0

@CyrilleKa:通知してくれてありがとう。それを修正しました。 :) –

3

配列として列挙型定数を返しますMyEnum.values()

あなたが使用することができます。

int size = MyEnum.values().length