【发布时间】:2012-08-03 19:37:48
【问题描述】:
我想在我的 webapp 中进行一些格式化,使用 MessageFormat、DateFormat、DecimalFormat 等。
由于这些不是线程安全的,每次使用一个静态实例将不起作用,但每次需要创建一个新的 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...);
【问题讨论】:
-
如果找不到的话,你可以写一个。 ;)
-
你做了哪些研究? stackoverflow 不是推荐引擎/谷歌。
标签: java multithreading