我发现NumberFormat有两种非常相似的方法:
1)
abstract Number parse(String source, ParsePosition parsePosition)
如果可能,返回Long(例如,在[Long.MIN_VALUE, Long.MAX_VALUE]并且没有小数),否则为Double。
2)
Object parseObject(String source, ParsePosition pos)
解析字符串中的文本以生成数字。
在parse(s,ParseIndex)
存在的情况下,需要parseObject(..)
需要投射到所需的输出?
我知道第一种方法抛出ParseException
而后者则不抛出。
只是想知道为什么需要这两种非常相似的方法。
提前谢谢。
答案 0 :(得分:4)
关于JDK的最常见的抱怨之一是为什么Integer.parseInt
和类似的方法不能用于验证字符串而不涉及昂贵的异常机制。 NumberFormat
似乎通过提供一种可以通过返回null
来表示失败的方法来回答该投诉。