java.lang.Object
java.lang.Enum<E>
- 型パラメータ:
E
- 列挙サブクラスのタイプ
- すべての実装されたインタフェース:
Serializable
,Comparable<E>
,Constable
public abstract class Enum<E extends Enum<E>> extends Object implements Constable, Comparable<E>, Serializable
これは、すべてのJava言語列挙型クラスの共通ベース・クラスです。 コンパイラによって合成される暗黙的に宣言されたメソッドの説明など、列挙の詳細は、「Java言語仕様」の8.9の項を参照してください。 列挙型クラスはすべて直列化可能で、直列化メカニズムによる特別な処理を受け取ります。 列挙定数に使用される直列化された表現はカスタマイズできません。 直列化と相互作用するメソッドとフィールドの宣言は、
serialVersionUID
など無視されます。詳細は、「Javaオブジェクト直列化仕様」を参照してください。
- Java言語仕様を参照してください:
-
「8.9 列挙型クラス」
「8.9.3 列挙メンバー」 - 導入されたバージョン:
- 1.5
- 関連項目:
-
ネストされたクラスのサマリー
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明protected final Object
clone()
CloneNotSupportedExceptionをスローします。final int
このenumと指定されたオブジェクトの順序を比較します。final Optional<Enum.EnumDesc<E>>
このインスタンスの列挙型記述子EnumDesc
を返します(作成可能な場合)。作成できない場合は空のOptional
を返します。final boolean
指定されたオブジェクトがこのenum定数と同じ場合は、trueを返します。protected final void
finalize()
enumクラスはfinalizeメソッドを持つことはできません。このenum定数のenum型に対応するClassオブジェクトを返します。final int
hashCode()
このenum定数のハッシュ・コードを返します。final String
name()
enum宣言で宣言されているとおりのenum定数の名前を返します。final int
ordinal()
列挙定数の序数(列挙宣言での位置。初期定数はゼロの序数に割り当てられる)を返します。toString()
宣言に含まれるとおりのenum定数の名前を返します。static <T extends Enum<T>>
T指定された名前の指定されたenumクラスのenum定数を返します。
-
コンストラクタの詳細
-
Enum
protected Enum(String name, int ordinal) 唯一のコンストラクタです。 プログラマは、このコンストラクタを呼び出すことはできません。 これは、enumクラス宣言にレスポンスしてコンパイラによって発行されるコードで使用されます。- パラメータ:
name
- - このenum定数の名前。enumを宣言するために使われる識別子。ordinal
- - 列挙定数の序数(enum宣言での位置。初期定数はゼロの序数に割り当てられる)。
-
-
メソッドの詳細
-
name
public final String name()enum宣言で宣言されているとおりのenum定数の名前を返します。 ほとんどのプログラマは、このメソッドよりもtoString()
メソッドを使用するようにしてください。これは、toStringメソッドの方がユーザーフレンドリな名前を返すことができるからです。 このメソッドは、リリース間で変わることがないname値自体の取得に依存するような特殊な状況で主に使用するために設計されています。- 戻り値:
- このenum定数の名前
-
ordinal
public final int ordinal()列挙定数の序数(列挙宣言での位置。初期定数はゼロの序数に割り当てられる)を返します。 このメソッドは、ほとんどのプログラマにとって役に立ちません。EnumSet
やEnumMap
などの高度なenumベースのデータ構造で使用するために設計されています。- 戻り値:
- この列挙定数の序数
-
toString
public String toString()宣言に含まれるとおりのenum定数の名前を返します。 このメソッドは不要な場合や不適切な場合にオーバーライドできます。 列挙型クラスは、より多くの"programmer-friendly"文字列形式が存在する場合、このメソッドをオーバーライドする必要があります。 -
equals
public final boolean equals(Object other) 指定されたオブジェクトがこのenum定数と同じ場合は、trueを返します。 -
hashCode
public final int hashCode()このenum定数のハッシュ・コードを返します。 -
clone
protected final Object clone() throws CloneNotSupportedExceptionCloneNotSupportedExceptionをスローします。 これにより、「単体」ステータスを維持する必要があるenumが複製されないことが保証されます。- オーバーライド:
clone
、クラスObject
- 戻り値:
- (返さない)
- 例外:
CloneNotSupportedException
- オブジェクトのクラスがCloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。- 関連項目:
-
compareTo
public final int compareTo(E o) このenumと指定されたオブジェクトの順序を比較します。 このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数を返します。 enum定数は、同じenum型のほかのenum定数だけと比較できます。 このメソッドにより実装される自然の順番は、定数が宣言された順番です。- 定義:
compareTo
、インタフェースComparable<E extends Enum<E>>
- パラメータ:
o
-比較対象のオブジェクト。- 戻り値:
- このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、等しい場合はゼロ、大きい場合は正の整数
-
getDeclaringClass
このenum定数のenum型に対応するClassオブジェクトを返します。 e1.getDeclaringClass()== e2.getDeclaringClass()の場合だけ、2つのenum定数e1とe2は同じenum型のenum定数です。 このメソッドにより返される値は、定数固有のクラス本文を持つenum定数についてObject.getClass()
メソッドで返される値とは異なる可能性があります。- 戻り値:
- このenum定数のenum型に対応するClassオブジェクト
-
describeConstable
public final Optional<Enum.EnumDesc<E>> describeConstable()このインスタンスの列挙型記述子EnumDesc
を返します(作成可能な場合)。作成できない場合は空のOptional
を返します。- 定義:
- インタフェース
Constable
内のdescribeConstable
- 戻り値:
- 最終的な名目記述子を含む
Optional
、または作成できない場合は空のOptional
。 - 導入されたバージョン:
- 12
-
valueOf
指定された名前の指定されたenumクラスのenum定数を返します。 名前は、このクラスでenum定数を宣言するために使用される識別子と正確に一致している必要があります。 (不適切な空白文字は許可されません。)特定の列挙型クラス
T
では、このメソッドのかわりに、その列挙型に対して暗黙的に宣言されたpublic static T valueOf(String)
メソッドを使用して、名前から対応する列挙型定数にマップできます。 列挙型クラスのすべての定数は、そのクラスの暗黙的なpublic static T[] values()
メソッドをコールすることで取得できます。- 型パラメータ:
T
- 定数が返されるenumクラス- パラメータ:
enumClass
- 定数を返すenumクラスのClass
オブジェクトname
- 返される定数の名前- 戻り値:
- 指定された名前の指定されたenumクラスのenum定数
- 例外:
IllegalArgumentException
- 指定されたenumクラスに指定された名前の定数がないか、指定されたclassオブジェクトがenumクラスを表していない場合NullPointerException
-enumClass
またはname
がnullの場合- 導入されたバージョン:
- 1.5
-
finalize
protected final void finalize()enumクラスはfinalizeメソッドを持つことはできません。
-