2
我看到NumberFormat有兩個方法很相似:爲什麼在NumberFormat中需要以下兩種方法?
1)
abstract Number parse(String source, ParsePosition parsePosition)
返回一個Long如果可能的話(例如,[Long.MIN_VALUE, Long.MAX_VALUE]的範圍內並沒有小數),否則一個雙。
2)從一個字符串
Object parseObject(String source, ParsePosition pos)
解析文本以產生數。
在parse(s,ParseIndex)
的存在下,需要將parseObject(..)
需要轉換爲所需輸出的需求是什麼? 我知道,第一種方法拋出ParseException
和後者沒有。 只是想知道爲什麼需要這2種非常相似的方法。 在此先感謝。
有趣的是,子類DecimalFormat parse(String,ParsePosition)的相同方法不拋出ParseException。 – Rollerball
+1一個很好的答案。雖然我個人沒有提出這個問題,但是你解釋這個問題的方式讓我覺得爲什麼「我」會使用它。 –
@Rollerball請注意,'NumberFormat'類中都有'parse(String,ParsePosition)','parse(String)'和'parseObject(String,ParsePosition)'。那些接受'ParsePosition'的方法不會拋出,它們使用這個對象來表示解析錯誤的位置。 –