MessageFormat、DateFormat、DecimalFormat などを使用して、webapp で書式設定を行いたいです。
これらはスレッドセーフではないため、使用ごとに 1 つの静的インスタンスは機能しませんが、必要になるたびに新しい XXXXFormat オブジェクトを作成するのは無駄に思えます。ThreadLocal でそれらをキャッシュして再利用することは、明らかな最適化のようです。
これは非常に一般的なパターンのように思えるので、適切なライブラリがあるかどうか疑問に思っています。
呼び出す代わりに:
DecimalFormat formatter = new DecimalFormat("###,##0.00");
String formatted = formatter.format(value);
何かをフォーマットする必要があるたびに、なぜですか:
String formatted = FormatCache.formatDecimal("###,##0.00",numberValue);
FormatCache は、フォーマット パターンをキーにした HashMap を使用して ThreadLocal キャッシュを実行しますか?
おそらく、次のような他の方法があるでしょう:
String FormatCache.formatDecimal(String, Number);
String FormatCache.formatDate(String, Date);
String FormatCache.formatMessage(String, Object...);