- java.lang.Object
-
- javax.print.attribute.EnumSyntax
-
- すべての実装されたインタフェース:
Serializable,Cloneable
- 直系の既知のサブクラス:
Chromaticity,ColorSupported,Compression,DialogTypeSelection,Fidelity,Finishings,JobSheets,JobState,JobStateReason,Media,MultipleDocumentHandling,OrientationRequested,PDLOverrideSupported,PresentationDirection,PrinterIsAcceptingJobs,PrinterState,PrinterStateReason,PrintQuality,ReferenceUriSchemesSupported,Severity,SheetCollate,Sides
public abstract class EnumSyntax extends Object implements Serializable, Cloneable
クラス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()メソッドは正常に動作します。 ただし、列挙クラスとサブクラスが使用されるアプリケーションは、スーパー・クラスとサブクラスで異なる整数値を持つ必要があります。- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedEnumSyntax(int value)指定された整数値を持つ新しい列挙値を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Objectclone()列挙値の複製を返します。これは、列挙値のセマンティックスを保護するために、この列挙値と同じオブジェクトになります。protected EnumSyntax[]getEnumValueTable()この列挙値の列挙クラスの列挙値テーブルを返します。protected intgetOffset()この列挙値の列挙クラスで使用される最小の整数値を返します。protected String[]getStringTable()この列挙値の列挙クラスの文字列テーブルを返します。intgetValue()列挙値の整数値を返します。inthashCode()この列挙値のハッシュ・コード値を返します。protected ObjectreadResolve()オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。StringtoString()この列挙値に対応する文字列値を返します。
-
-
-
メソッドの詳細
-
getValue
public int getValue()
列挙値の整数値を返します。- 戻り値:
- 値
-
clone
public Object clone()
列挙値の複製を返します。これは、列挙値のセマンティックスを保護するために、この列挙値と同じオブジェクトになります。
-
hashCode
public int hashCode()
この列挙値のハッシュ・コード値を返します。 ハッシュ・コードはこの列挙値の整数値です。- オーバーライド:
hashCode、クラスObject- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
-
toString
public String toString()
この列挙値に対応する文字列値を返します。
-
readResolve
protected Object readResolve() throws ObjectStreamException
オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。- 戻り値:
getEnumValueTable()によって返された列挙値テーブルのインデックスi - Lに格納された列挙の単独値。ここで、iはこの列挙値の整数値、LはgetOffset()によって返された値- 例外:
ObjectStreamException- ストリームが直列化復元できない場合InvalidObjectException- 列挙値表がnullの場合、この列挙値の整数値が列挙値表の要素に対応していないか、列挙値表の対応する要素がnullです。 (ノート:InvalidObjectExceptionは、readResolve()からスローされると宣言されているObjectStreamExceptionのサブクラスです。)
-
getStringTable
protected String[] getStringTable()
この列挙値の列挙クラスの文字列テーブルを返します。 列挙クラスの整数値はL..L+N-1の範囲にあるものと見なされます。ここで、LはgetOffset()によって返された値、Nは文字列テーブルの長さです。 インデックスi - Lの文字列テーブルの要素は、整数値がiの列挙値に対するtoString()によって返された値です。 前述の範囲内の整数を列挙値で使用しない場合は、対応する表要素nullのままにします。デフォルトの実装では
nullを返します。 列挙クラス(クラスEnumSyntaxのサブクラス)がnon-null文字列表を返すようにこのメソッドをオーバーライドせず、サブクラスがtoString()メソッドをオーバーライドしない場合、ベース・クラスのtoString()メソッドは、この列挙値の整数値の文字列表現のみを返します。- 戻り値:
- 文字列テーブル
-
getEnumValueTable
protected EnumSyntax[] getEnumValueTable()
この列挙値の列挙クラスの列挙値テーブルを返します。 列挙クラスの整数値はL..L+N-1の範囲にあるものと見なされます。ここで、LはgetOffset()によって返された値、Nは列挙値テーブルの長さです。 インデックスi - Lの列挙値テーブルの要素は、整数値がiの列挙値オブジェクトです。readResolve()メソッドは、列挙インスタンスの直列化復元時に単独のセマンティックスを保護するためにこれが必要になります。 前述の範囲内の整数を列挙値で使用しない場合は、対応する表要素nullのままにします。デフォルトの実装では
nullを返します。 列挙クラス(クラスEnumSyntaxのサブクラス)がこのメソッドをオーバーライドしてnon-null列挙値表を戻さず、サブクラスがreadResolve()メソッドをオーバーライドしない場合、ベース・クラスのreadResolve()メソッドは、列挙インスタンスがオブジェクト入力ストリームからデシリアライズされるたびに例外をスローします。- 戻り値:
- 値テーブル
-
getOffset
protected int getOffset()
この列挙値の列挙クラスで使用される最小の整数値を返します。デフォルトの実装は0を返します。 列挙クラス(クラス
EnumSyntaxのサブクラス)で0以外の整数値が使用されている場合は、サブクラスのこのメソッドをオーバーライドします。- 戻り値:
- 最小の列挙値のオフセット
-
-