テキストフォーマッタ

トップ > チップス > テキストフォーマッタ
2012-02-13, format

/tips/java/format **通貨用のフォーマットを取得する :NumberFormat format = NumberFormat.getCurrencyInstance();

**スレッドセーフなDateFormatを作る java.text.SimpleDateFormatは非常に便利であちこちで使う機会があります。それでついついインスタンス生成コストを節約しようと、オブジェクトを共有したりすると、{strong:実はスレッドセーフではない}という落とし穴に落ちてしまいます。結局、複数のスレッドで共有しないのが一番ですが、どうしても共有したい場合、以下のようなラッパクラスが利用できると思います。

:public class SynchronizedDateFormat extends DateFormat{ : : private SimpleDateFormat sdf; : : public SynchronizedDateFormat(String pattern){ : sdf = new SimpleDateFormat(pattern); : } : : @Override : public StringBuffer format(Date date, StringBuffer toAppendTo, : FieldPosition fieldPosition) { : synchronized (sdf) { : return sdf.format(date, toAppendTo, fieldPosition); : } : } : : @Override : public Date parse(String source, ParsePosition pos) { : synchronized (sdf) { : return sdf.parse(source, pos); : } : } : :}

この記事は役に立ちましたか?