2

の拡張機能を作りたかったのですが、メソッドjava.text.Formatをどうすればよいかわかりません。Format.parseObjectjavadoc の状態

指定された文字列の先頭からテキストを解析して、オブジェクトを生成します。メソッドは、指定された文字列のテキスト全体を使用しない場合があります。

このメソッドを実装したい場合、入力文字列全体を解析できる状況をどのように処理しますか? 例外をスローしますか、それとも解析された値 (またはその他のもの) を返しますか? 例外の javadoc には、 aParseExceptionがスローされると記載されていることに注意してください。

指定された文字列の先頭を解析できない場合。

IMO、全体を解析できる場合、String確かに最初を解析できるので、例外をスローする理由はありません。JDKでのこのメソッドの実装を見ると、彼らは独自のドキュメントを尊重していないようです

public Object parseObject(String source) throws ParseException {
    ParsePosition pos = new ParsePosition(0);
    Object result = parseObject(source, pos);
    if (pos.index == 0) {
        throw new ParseException("Format.parseObject(String) failed",
            pos.errorIndex);
    }
    return result;
}
4

1 に答える 1

2

「メソッドは、指定された文字列のテキスト全体を使用しない場合があります。」

これは、「かもしれないし、そうでないかもしれない...」と解釈する必要があります。

ところで - Java にはすでに組み込みのフォーマッタがたくさんあります。数値用の NumberFormat と DecimalFormat を除けば、私が最も気に入っているのは (おそらく 10 年間使用していないため、使用する理由がありませんでした) ですjava.text.MessageFormat。それを見て、それがあなたのニーズを満たしているかどうかを確認してください

于 2012-05-04T20:15:44.007 に答える