我想在我的 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...);