- すべての実装されたインタフェース:
- Serializable,- Cloneable
- 直系の既知のサブクラス:
- DateFormat,- MessageFormat,- NumberFormat
public abstract class Format extends Object implements Serializable, Cloneable
Formatは、日付、メッセージ、数字などのロケールに依存する情報をフォーマットするabstract基底クラスです。
 
 Formatは、ロケールに依存する情報をStringにフォーマットするため(formatメソッド)、およびStringを解析してオブジェクトに戻すため(parseObjectメソッド)のプログラミング・インタフェースを定義するものです。
 
 通常、formatのparseObjectメソッドは、そのformatメソッドによってフォーマットされた任意の文字列を解析できる必要があります。 ただし、これが可能でない例外的な場合があります。 たとえば、formatメソッドは間に区切り文字がない2つの隣接する整数値を生成する場合があります。この場合、parseObjectは各数字がどの数値に属するのかを示すことができません。 
 
サブクラス化
 Javaプラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、3つの特殊なサブクラスDateFormat、MessageFormat、NumberFormatがFormatに用意されています。
 
具象サブクラスには、次の3つのメソッドを実装しなければいけません。
-  format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
-  formatToCharacterIterator(Object obj)
-  parseObject(String source, ParsePosition pos)
MessageFormatなどによって使用されます。 サブクラスは多くの場合、特定の入力タイプのための追加のformatメソッドや特定の結果タイプのためのparseメソッドも提供します。 ParsePosition引数をとらないparseは、要求されたフォーマットのテキストが入力テキストの先頭にない場合、ParseExceptionをスローします。 
 ほとんどのサブクラスには、さらに次のファクトリ・メソッドが実装されます。
- 
 getInstanceは、現在のロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。
- 
 getInstance(Locale)は、指定されたロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。
getXxxxInstanceメソッドを実装する場合もあります。 たとえば、NumberFormatクラスには、特殊な数字フォーマッタを得るためのgetPercentInstanceおよびgetCurrencyInstanceメソッドがあります。 
 
 ロケール用のオブジェクトをプログラマが生成できるようにする場合(getInstance(Locale)など)は、Formatのサブクラスにさらに次のクラス・メソッドの実装が必要です。
 
public static Locale[] getAvailableLocales()
 最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1組の定数を定義することができます。 これらの定数は、FieldPositionオブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。 これらの定数の名前は、item_FIELDでなければいけません。itemはそのフィールドを示します。 これらの定数の例については、DateFormatのERA_FIELDなどを参照してください。 
 
Synchronization
フォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
- 導入されたバージョン:
- 1.1
- 関連項目:
- ParsePosition,- FieldPosition,- NumberFormat,- DateFormat,- MessageFormat, 直列化された形式
- 
ネストされたクラスのサマリーネストされたクラス 修飾子と型 クラス 説明 static classFormat.FieldFormat.formatToCharacterIteratorから返されたAttributedCharacterIterator内の属性キー、およびFieldPosition内のフィールド識別子として使用する定数を定義します。
- 
コンストラクタのサマリーコンストラクタ 修飾子 コンストラクタ 説明 protectedFormat()唯一のコンストラクタです。
- 
メソッドのサマリー修飾子と型 メソッド 説明 Objectclone()このオブジェクトのコピーを作成して、返します。Stringformat(Object obj)オブジェクトをフォーマットして文字列を作成します。abstract StringBufferformat(Object obj, StringBuffer toAppendTo, FieldPosition pos)オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。AttributedCharacterIteratorformatToCharacterIterator(Object obj)Objectをフォーマットし、AttributedCharacterIteratorを生成します。ObjectparseObject(String source)指定された文字列の先頭からテキストを解析してオブジェクトを生成します。abstract ObjectparseObject(String source, ParsePosition pos)文字列からテキストを解析してオブジェクトを生成します。
- 
コンストラクタの詳細- 
書式protected Format()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
 
- 
- 
メソッドの詳細- 
formatオブジェクトをフォーマットして文字列を作成します。 これは次の記述と同等です。format(obj, new StringBuffer(), new FieldPosition(0)).toString();- パラメータ:
- obj- フォーマットするオブジェクト
- 戻り値:
- フォーマットされた文字列。
- 例外:
- IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合
 
- 
formatpublic abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。pos引数がフォーマットによって使用されるフィールドを識別する場合は、その引数のインデックスは最初に検出されたフィールドの開始と終了に設定されます。- パラメータ:
- obj- フォーマットするオブジェクト
- toAppendTo- テキストを追加する位置
- pos- フォーマットされたテキスト内のフィールドを識別する- FieldPosition
- 戻り値:
- toAppendToとして渡される文字列バッファ。フォーマットされたテキストが追加される
- 例外:
- NullPointerException-- toAppendToまたは- posがnullの場合
- IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合
 
- 
formatToCharacterIteratorpublic AttributedCharacterIterator formatToCharacterIterator(Object obj)Objectをフォーマットし、AttributedCharacterIteratorを生成します。 返されたAttributedCharacterIteratorを使用すると、結果のStringを構築できるとともに、結果のStringについての情報を判定できます。AttributedCharacterIteratorの各属性キーは Field型です。AttributedCharacterIterator内の各属性に対する正当な値の定義は、それぞれのFormat実装に依存しますが、通常、属性キーは属性値としても使用されます。デフォルトの実装では、属性なしの AttributedCharacterIteratorが生成されます。 フィールドをサポートするサブクラスはこれをオーバーライドし、有効な属性を持つAttributedCharacterIteratorを生成します。- パラメータ:
- obj- フォーマットするオブジェクト
- 戻り値:
- フォーマットされた値を説明するAttributedCharacterIterator。
- 例外:
- NullPointerException- objがnullの場合。
- IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合。
- 導入されたバージョン:
- 1.4
 
- 
parseObjectpublic abstract Object parseObject(String source, ParsePosition pos)文字列からテキストを解析してオブジェクトを生成します。メソッドは posによって指定されたインデックスを開始位置としてテキストの解析を試みます。 解析が完了すると、posのインデックスは、使用された最後の文字(解析では、文字列の最後までのすべての文字を使用するとは限らない)のあとのインデックスに更新され、解析されたオブジェクトが返されます。 更新されたposは、このメソッドの次の呼出しの開始点を示すのに使用できます。 エラーが発生した場合は、posのインデックスは変更されず、エラーが発生した文字のインデックスにposのエラー・インデックスが設定され、nullが返されます。- パラメータ:
- source- 部分的に解析される- String。
- pos- 上記のインデックスおよびエラー・インデックス情報を持つ- ParsePositionオブジェクト
- 戻り値:
- 文字列から解析されるObject。 エラーの場合はnullを返す。
- 例外:
- NullPointerException-- sourceまたは- posがnullの場合。
 
- 
parseObjectpublic Object parseObject(String source) throws ParseException指定された文字列の先頭からテキストを解析してオブジェクトを生成します。 メソッドは指定された文字列のテキスト全体に使用されない場合もあります。- パラメータ:
- source- 先頭が解析される- String。
- 戻り値:
- 文字列から解析されるObject。
- 例外:
- ParseException- 指定された文字列の先頭が解析できない場合。
- NullPointerException-- sourceがnullである場合
 
- 
clonepublic Object clone()このオブジェクトのコピーを作成して、返します。
 
-