- 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()
メソッドは正常に動作します。 ただし、列挙クラスとサブクラスが使用されるアプリケーションは、スーパー・クラスとサブクラスで異なる整数値を持つ必要があります。- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protected
EnumSyntax(int value)
指定された整数値を持つ新しい列挙値を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 Object
clone()
列挙値の複製を返します。これは、列挙値のセマンティックスを保護するために、この列挙値と同じオブジェクトになります。protected EnumSyntax[]
getEnumValueTable()
この列挙値の列挙クラスの列挙値テーブルを返します。protected int
getOffset()
この列挙値の列挙クラスで使用される最小の整数値を返します。protected String[]
getStringTable()
この列挙値の列挙クラスの文字列テーブルを返します。int
getValue()
列挙値の整数値を返します。int
hashCode()
この列挙値のハッシュ・コード値を返します。protected Object
readResolve()
オブジェクトの入力時に、この直列化復元された列挙インスタンスを、列挙属性クラスで定義された適切な列挙値に変換します。String
toString()
この列挙値に対応する文字列値を返します。
-
-
-
メソッドの詳細
-
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クラスのサブクラス)がnull以外の文字列テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスが
toString()
メソッドをオーバーライドしないと、基底クラスのtoString()
メソッドによってこの列挙値の整数値の文字列表現が返されます。- 戻り値:
- 文字列テーブル
-
getEnumValueTable
protected EnumSyntax[] getEnumValueTable()
この列挙値の列挙クラスの列挙値テーブルを返します。 列挙クラスの整数値はL..L+N-1の範囲にあるものと見なされます。ここで、LはgetOffset()
によって返された値、Nは列挙値テーブルの長さです。 インデックスi - Lの列挙値テーブルの要素は、整数値がiの列挙値オブジェクトです。readResolve()
メソッドは、列挙インスタンスの直列化復元時に単独のセマンティックスを保護するためにこれが必要になります。 上述の範囲の整数値がどの列挙値でも使用されない場合、対応するテーブル要素はnullのままになります。デフォルト実装はnullを返します。 列挙クラス(EnumSyntaxクラスのサブクラス)がnull以外の列挙値テーブルを返すためにこのメソッドをオーバーライドしない場合に、このサブクラスが
readResolve()
メソッドをオーバーライドしないと、基底クラスのreadResolve()
メソッドによって、列挙インスタンスがオブジェクト入力ストリームから直列化復元されるときに必ず例外がスローされます。- 戻り値:
- 値テーブル
-
getOffset
protected int getOffset()
この列挙値の列挙クラスで使用される最小の整数値を返します。デフォルトの実装は0を返します。 列挙クラス(EnumSyntaxクラスのサブクラス)が0以外で始まる整数値を使用する場合、サブクラスのこのメソッドをオーバーライドします。
- 戻り値:
- 最小の列挙値のオフセット
-
-