JavaNumberFormat
是 1) 非线程安全的(可以使用 a 来解决ThreadLocal
);2)当我知道字符串是否应该包含 int、long 或 double 并且想要如下 API 时,不方便正确使用最简单的用例:
int parseInt(String str, Locale locale) throws ParseException;
int parseInt(String str, int defaultValue, Locale locale);
long parseLong(String str, Locale locale) throws ParseException;
long parseLong(String str, long defaultValue, Locale locale);
double parseDouble(String str, Locale locale) throws ParseException;
double parseDouble(String str, double defaultValue, Locale locale);
当字符串未完全解析时引发异常。显然,这样的包装器很容易编写,但我在 Guava 或 Apache Commons Lang 中找不到。我只是错过了吗?还是有另一种或多或少的标准解决方案?