I declare an enum as :
enum Sex {MALE,FEMALE};
And then, iterate enum as shown below :
for(Sex v : Sex.values()){
System.out.println(" values :"+ v);
}
Java API を確認しましたが、values() メソッドが見つかりません。このメソッドがどこから来たのか知りたいです。
APIリンク:列挙型
ベストアンサー1
このメソッドはコンパイラによって追加されたため、javadoc では表示されません。
3か所に文書化されています:
- 列挙型、Javaチュートリアルより
コンパイラは、列挙型を作成するときに、いくつかの特別なメソッドを自動的に追加します。たとえば、宣言された順序で列挙型のすべての値を含む配列を返す静的な values メソッドがあります。このメソッドは、列挙型の値を反復処理するために、通常、for-each 構造と組み合わせて使用されます。
Enum.valueOf
クラス
(特別な暗黙的メソッドはメソッドvalues
の説明に記載されています)valueOf
列挙型のすべての定数は、その型の暗黙的な public static T[] values() メソッドを呼び出すことによって取得できます。
このvalues
関数は列挙体のすべての値を単純にリストします。