- すべての実装されたインタフェース:
Serializable
,Cloneable
- 直系の既知のサブクラス:
DateFormat
,MessageFormat
,NumberFormat
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 class
Format.formatToCharacterIterator
から返されたAttributedCharacterIterator
内の属性キー、およびFieldPosition
内のフィールド識別子として使用する定数を定義します。 -
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明clone()
このオブジェクトのコピーを作成して、返します。オブジェクトをフォーマットして文字列を作成します。abstract StringBuffer
format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。Objectをフォーマットし、AttributedCharacterIterator
を生成します。parseObject(String source)
指定された文字列の先頭からテキストを解析してオブジェクトを生成します。abstract Object
parseObject(String source, ParsePosition pos)
文字列からテキストを解析してオブジェクトを生成します。
-
コンストラクタの詳細
-
書式
protected Format()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
-
-
メソッドの詳細
-
format
オブジェクトをフォーマットして文字列を作成します。 これは次の記述と同等です。format
(obj, new StringBuffer(), new FieldPosition(0)).toString();
- パラメータ:
obj
- フォーマットするオブジェクト- 戻り値:
- フォーマットされた文字列。
- 例外:
IllegalArgumentException
- 指定されたオブジェクトをFormatでフォーマットできない場合
-
format
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。pos
引数がフォーマットによって使用されるフィールドを識別する場合は、その引数のインデックスは最初に検出されたフィールドの開始と終了に設定されます。- パラメータ:
obj
- フォーマットするオブジェクトtoAppendTo
- テキストを追加する位置pos
- フォーマットされたテキスト内のフィールドを識別するFieldPosition
- 戻り値:
toAppendTo
として渡される文字列バッファ。フォーマットされたテキストが追加される- 例外:
NullPointerException
-toAppendTo
またはpos
がnullの場合IllegalArgumentException
- 指定されたオブジェクトをFormatでフォーマットできない場合
-
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)Objectをフォーマットし、AttributedCharacterIterator
を生成します。 返されたAttributedCharacterIterator
を使用すると、結果のStringを構築できるとともに、結果のStringについての情報を判定できます。AttributedCharacterIteratorの各属性キーは
Field
型です。AttributedCharacterIterator
内の各属性に対する正当な値の定義は、それぞれのFormat
実装に依存しますが、通常、属性キーは属性値としても使用されます。デフォルトの実装では、属性なしの
AttributedCharacterIterator
が生成されます。 フィールドをサポートするサブクラスはこれをオーバーライドし、有効な属性を持つAttributedCharacterIterator
を生成します。- パラメータ:
obj
- フォーマットするオブジェクト- 戻り値:
- フォーマットされた値を説明するAttributedCharacterIterator。
- 例外:
NullPointerException
- objがnullの場合。IllegalArgumentException
- 指定されたオブジェクトをFormatでフォーマットできない場合。- 導入されたバージョン:
- 1.4
-
parseObject
public abstract Object parseObject(String source, ParsePosition pos)文字列からテキストを解析してオブジェクトを生成します。メソッドは
pos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。 解析が完了すると、pos
のインデックスは、使用された最後の文字(解析では、文字列の最後までのすべての文字を使用するとは限らない)のあとのインデックスに更新され、解析されたオブジェクトが返されます。 更新されたpos
は、このメソッドの次の呼出しの開始点を示すのに使用できます。 エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスにpos
のエラー・インデックスが設定され、nullが返されます。- パラメータ:
source
- 部分的に解析されるString
。pos
- 上記のインデックスおよびエラー・インデックス情報を持つParsePosition
オブジェクト- 戻り値:
- 文字列から解析される
Object
。 エラーの場合はnullを返す。 - 例外:
NullPointerException
-source
またはpos
がnullの場合。
-
parseObject
public Object parseObject(String source) throws ParseException指定された文字列の先頭からテキストを解析してオブジェクトを生成します。 メソッドは指定された文字列のテキスト全体に使用されない場合もあります。- パラメータ:
source
- 先頭が解析されるString
。- 戻り値:
- 文字列から解析される
Object
。 - 例外:
ParseException
- 指定された文字列の先頭が解析できない場合。NullPointerException
-source
がnullである場合
-
clone
public Object clone()このオブジェクトのコピーを作成して、返します。
-