|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
java.lang.Object | +--java.text.Format
Format は、日付、メッセージ、数字などのロケールに依存する情報をフォーマットする abstract 基底クラスです。
Format は、ロケールに依存する情報を文字列にフォーマットするため (format メソッド)、および文字列を解析してオブジェクトに戻すため (parseObject メソッド) のプログラミングインタフェースを定義するものです。format でフォーマットされた文字列は、parseObject で解析できることが保証されます。
指定された型のオブジェクトを Format オブジェクトがフォーマットできないことが原因でフォーマットが正常に行われないと、format は IllegalArgumentException をスローします。また、オブジェクトのフォーマットが正しくないと、format は Unicode の置換文字 \\uFFFD を返します。
解析時に一致するものがないと、parseObject(String) は ParseException をスローします。parseObject(String, ParsePosition) は、ParsePosition の index メンバを変更せずに null を返します。
サブクラス化:
Java 2 プラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、Format に 3 つの具象サブクラス DateFormat、MessageFormat、NumberFormat が用意されています。
具象サブクラスには、次の 2 つのメソッドを実装しなければなりません。
format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
parseObject (String source, ParsePosition pos)
ほとんどのサブクラスにはさらに次の 2 つのメソッドが実装されます。
getInstance は、現在のロケールに適した便利なフォーマットオブジェクトを取得するためのものです。
getInstance(Locale) は、指定されたロケールに適した便利なフォーマットオブジェクトを取得するためのものです。
getXxxxInstance メソッドを実装する場合もあります。たとえば、NumberFormat クラスには、特殊な数字フォーマッタを得るための getPercentInstance および getCurrencyInstance メソッドがあります。
ロケール用のオブジェクトをプログラマが生成できるようにする場合 (getInstance(Locale) など) は、Format のサブクラスにさらに次のクラスメソッドの実装が必要です。
public static Locale[] getAvailableLocales()
最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1 組の定数を定義することができます。これらの定数は、FieldPosition オブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。これらの定数の名前は、item_FIELD でなければなりません。item はそのフィールドを示します。これらの定数の例については、DateFormat の ERA_FIELD などを参照してください。
ParsePosition,
FieldPosition,
NumberFormat,
DateFormat,
MessageFormat, 直列化された形式| コンストラクタの概要 | |
Format()
|
|
| メソッドの概要 | |
Object |
clone()
Cloneable をオーバーライドします。 |
String |
format(Object obj)
オブジェクトをフォーマットして文字列を作成します。 |
abstract StringBuffer |
format(Object obj,
StringBuffer toAppendTo,
FieldPosition pos)
オブジェクトをフォーマットして文字列を作成します。 |
Object |
parseObject(String source)
文字列を解析してオブジェクトを生成します。 |
abstract Object |
parseObject(String source,
ParsePosition status)
文字列を解析してオブジェクトを生成します。 |
| クラス java.lang.Object から継承したメソッド |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
public Format()
| メソッドの詳細 |
public final String format(Object obj)
StringBuffer バージョンのフォーマットはサブクラスによってオーバーライドされます。
obj - フォーマットするオブジェクトIllegalArgumentException - Format がこの型のオブジェクトをフォーマットできない場合MessageFormat,
format(Object, StringBuffer, FieldPosition)
public abstract StringBuffer format(Object obj,
StringBuffer toAppendTo,
FieldPosition pos)
StringBuffer format (Number obj, StringBuffer toAppendTo) Number parse (String str)これらの汎用ルーチンによって、MessageFormat などのオブジェクトに対して、さまざまな解析とフォーマットが可能になります。
obj - フォーマットするオブジェクトtoAppendTo - テキストを追加する位置pos - 入力では、必要な場合の位置合わせフィールド。出力では、位置合わせフィールドのオフセットIllegalArgumentException - 指定されたオブジェクトを Format でフォーマットできない場合MessageFormat,
FieldPosition
public abstract Object parseObject(String source,
ParsePosition status)
String format (Number obj);
String format (long obj);
String format (double obj);
Number parse (String str);
status - 入力 - 出力パラメータ
このメソッドを呼び出す前に、ソースにおいて解析を開始するオフセットを、status.index に設定する必要があります。呼び出したあと、status.index は、解析されたテキストの終わりにあります。エラーがあるとインデックスは変更されません。
解析の際、先行のスペースは破棄されます (解析が正常な場合)。後ろのスペースは元のままです。
例: 「_12_xy」(_ はスペースを表す) を解析して数字を見つけると (インデックス == 0)、結果は数字 12 で、status.index が 3 に更新されます (2 つ目のスペースの前)。2 回目の解析では、「xy」が数字ではないので、結果は ParseException になり、status.index は 3 のままです。
一般にサブクラスでは特定の解析メソッドが提供されますが、それらによってさまざまな型の値が返されます。メソッドは戻り型にオーバーロードすることができないので、これらは一般に parse と呼ばれます。一方、この多相性のあるメソッドは、常に parseObject と呼ばれます。状態を取らない解析メソッドは、必要なフォーマットのテキストが開始位置になければ、ParseException をスローする必要があります。
ParsePosition
public Object parseObject(String source)
throws ParseException
ParseException - 指定された文字列が無効な場合public Object clone()
Object 内の clonejava.lang.Object からコピーされたタグ:CloneNotSupportedException - オブジェクトのクラスが Cloneable インタフェースをサポートしていない場合。clone メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがあるOutOfMemoryError - 十分なメモリがない場合Cloneable
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | |||||||||
| 概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | |||||||||
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.