モジュール java.base
パッケージ java.text

クラスFormat

java.lang.Object
java.text.Format
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
DateFormat, ListFormat, MessageFormat, NumberFormat

public abstract class Format extends Object implements Serializable, Cloneable
Formatは、日付、メッセージ、数値、リストなどのロケール依存情報を書式設定するための抽象ベース・クラスです。

Formatは、ロケールに依存する情報をStringにフォーマットするため(formatメソッド)、およびStringを解析してオブジェクトに戻すため(parseObjectメソッド)のプログラミング・インタフェースを定義するものです。

通常、formatのparseObjectメソッドは、そのformatメソッドによってフォーマットされた任意の文字列を解析できる必要があります。 ただし、これが可能でない例外的な場合があります。 たとえば、formatメソッドは間に区切り文字がない2つの隣接する整数値を生成する場合があります。この場合、parseObjectは各数字がどの数値に属するのかを示すことができません。

サブクラス化

Javaプラットフォームは、Formatの特殊なサブクラスを提供します。 -- DateFormat, MessageFormat, NumberFormatおよびListFormat--日付、メッセージ、数値およびリストをそれぞれ書式設定します。

具象サブクラスには、次の3つのメソッドを実装しなければいけません。

  1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  2. formatToCharacterIterator(Object obj)
  3. parseObject(String source, ParsePosition pos)
これらの一般的なメソッドによって、オブジェクトのさまざまな解析とフォーマットが可能になります。これらのメソッドはMessageFormatなどによって使用されます。 サブクラスは多くの場合、特定の入力タイプのための追加のformatメソッドや特定の結果タイプのためのparseメソッドも提供します。 ParsePosition引数をとらないparseは、要求されたフォーマットのテキストが入力テキストの先頭にない場合、ParseExceptionをスローします。

ほとんどのサブクラスには、さらに次のファクトリ・メソッドが実装されます。

  1. getInstanceは、現在のロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。
  2. getInstance(Locale)は、指定されたロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。
また、サブクラスによっては、さらに特殊な制御のために、ほかのgetXxxxInstanceメソッドを実装する場合もあります。 たとえば、NumberFormatクラスには、特殊な数字フォーマッタを得るためのgetPercentInstanceおよびgetCurrencyInstanceメソッドがあります。

ロケール用のオブジェクトをプログラマが生成できるようにする場合(getInstance(Locale)など)は、Formatのサブクラスにさらに次のクラス・メソッドの実装が必要です。

 public static Locale[] getAvailableLocales()
 

最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1組の定数を定義することができます。 これらの定数は、FieldPositionオブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。 これらの定数の名前は、item_FIELDでなければいけません。itemはそのフィールドを示します。 これらの定数の例については、DateFormatERA_FIELDなどを参照してください。

Synchronization

フォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。

導入されたバージョン:
1.1
関連項目: