|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
java.lang.Object | +--javax.print.attribute.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 2 Platform Std. Ed. v1.4.0 |
||||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||||
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.