|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Objectjavax.print.attribute.EnumSyntax
public abstract class EnumSyntax
EnumSyntax クラスは、すべての「型保証された列挙」オブジェクトの一般的な実装を提供する抽象基底クラスです。EnumSyntax クラスの拡張である列挙クラスは、列挙クラスの単独インスタンスである列挙値 (オブジェクト) のグループを提供します。 次に例を示します。
public class Bach extends EnumSyntax {
public static final Bach JOHANN_SEBASTIAN = new Bach(0);
public static final Bach WILHELM_FRIEDEMANN = new Bach(1);
public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);
public static final Bach JOHANN_CHRISTIAN = new Bach(3);
public static final Bach P_D_Q = new Bach(4);
private static final String[] stringTable = {
"Johann Sebastian Bach",
"Wilhelm Friedemann Bach",
"Carl Philip Emmanuel Bach",
"Johann Christian Bach",
"P.D.Q. Bach"
};
protected String[] getStringTable() {
return stringTable;
}
private static final Bach[] enumValueTable = {
JOHANN_SEBASTIAN,
WILHELM_FRIEDEMANN,
CARL_PHILIP_EMMANUEL,
JOHANN_CHRISTIAN,
P_D_Q
};
protected EnumSyntax[] getEnumValueTable() {
return enumValueTable;
}
}
次いで、== および != 演算子を使用するコードを記述して、列挙値を判定できます。次に例を示します。
Bach theComposer;
. . .
if (theComposer == Bach.JOHANN_SEBASTIAN) {
System.out.println ("The greatest composer of all time!");
}
列挙クラスの equals() メソッドは、同一のオブジェクト (==) の判定だけを行います。
列挙値を文字列に変換するには、 を呼び出します。文字列は列挙クラスが提供するテーブルから取得されます。
toString()
背後にある実装では、列挙値は整数値のみであり、列挙クラス内の列挙値ごとに異なる整数値が割り当てられています。列挙値の整数値を取得するには、 を呼び出します。列挙値の整数値は、列挙値の構築時に設定されます (getValue() を参照)。コンストラクタが保護されているので、使用できる列挙値は列挙クラスで宣言された単体オブジェクトのみです。 実行時に新たに列挙値を作成することはできません。
EnumSyntax(int)
列挙クラスのサブクラスを定義して、追加の列挙値を持つ列挙クラスを拡張できます。サブクラスの列挙値の整数値は、スーパークラスの列挙値の整数値と別個のものである必要はありません。 サブクラスがスーパークラスと同じ整数値を使用しても、==、!=、equals()、および toString() メソッドは正常に動作します。ただし、列挙クラスとサブクラスが使用されるアプリケーションは、スーパークラスとサブクラスで異なる整数値を持つ必要があります。
| コンストラクタの概要 | |
|---|---|
protected |
EnumSyntax(int value)
指定された整数値を持つ新しい列挙値を構築します。 |
| メソッドの概要 | |
|---|---|
Object |
clone()
列挙値の複製を返します。 |
protected EnumSyntax[] |
getEnumValueTable()
この列挙値の列挙クラスの列挙値テーブルを返します。 |
protected int |
getOffset()
この列挙値の列挙クラスで使用される最小の整数値を返します。 |
protected String[] |
getStringTable()
この列挙値の列挙クラスの文字列テーブルを返します。 |
int |
getValue()
列挙値の整数値を返します。 |
int |
hashCode()
この列挙値のハッシュコード値を返します。 |
protected Object |
readResolve()
オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。 |
String |
toString()
この列挙値に対応する文字列値を返します。 |
| クラス java.lang.Object から継承されたメソッド |
|---|
equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
| コンストラクタの詳細 |
|---|
protected EnumSyntax(int value)
value - 整数値| メソッドの詳細 |
|---|
public int getValue()
public Object clone()
Object 内の cloneCloneablepublic int hashCode()
Object 内の hashCodeObject.equals(java.lang.Object),
Hashtablepublic String toString()
Object 内の toString
protected Object readResolve()
throws ObjectStreamException
getEnumValueTable() によって返された列挙値テーブルのインデックス i 〜 L に格納された列挙の単独値。 ここで、i はこの列挙値の整数値、 L は getOffset() によって返された値
ObjectStreamException - ストリームが直列化復元できない場合
InvalidObjectException - 列挙値のテーブルが null の場合、 この列挙値の整数値が列挙値のテーブルの要素に対応しない場合、 または列挙値のテーブルの対応する要素が null の場合、 スローされる。注: InvalidObjectException は、readResolve() がスローを宣言された ObjectStreamException のサブクラスであるprotected String[] getStringTable()
getOffset() によって返された値、N は文字列テーブルの長さです。インデックス i 〜 L の文字列テーブルの要素は、整数値が i の列挙値に対する toString() によって返された値です。上述の範囲の整数値がどの列挙値でも使用されない場合、対応するテーブル要素は null のままになります。
デフォルトの実装では null を返します。列挙クラス (EnumSyntax クラスのサブクラス) が null 以外の文字列テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスが メソッドをオーバーライドしないと、基底クラス toString() メソッドによってこの列挙値の整数値の文字列表現が返されます。
toString()
protected EnumSyntax[] getEnumValueTable()
getOffset() によって返された値、N は列挙値テーブルの長さです。インデックス i 〜 L の列挙値テーブルの要素は、整数値が i の列挙値オブジェクトです。 readResolve() メソッドは、列挙インスタンスの直列化復元時に単独のセマンティクスを保護するためにこれが必要になります。上述の範囲の整数値がどの列挙値でも使用されない場合、対応するテーブル要素は null のままになります。
デフォルトの実装では null を返します。列挙クラス (EnumSyntax クラスのサブクラス) が null 以外の列挙値テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスが メソッドをオーバーライドしないと、基底クラス readResolve() メソッドによって、列挙インスタンスがオブジェクト入力ストリームから直列化復元されるときに必ず例外がスローされます。
readResolve()
protected int getOffset()
デフォルトの実装は 0 を返します。列挙クラス (EnumSyntax クラスのサブクラス) が 0 以外で始まる整数値を使用する場合、サブクラスのこのメソッドをオーバーライドします。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。