JavaNumberFormat
は 1) スレッドセーフではありません (これは で回避できます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 には見つかりませんでした。私はちょうどそれを逃したのですか?または、これに対する別の多かれ少なかれ標準的なソリューションはありますか?