Open10

JavaのString.formatを読む

mith009mith009

JavaのString.formatはどうやって書式文字列をパースしているのか調べる

mith009mith009

実装の本体はjava.util.Formatterにあるようなので、そちらを見ていく

まずはコンストラクタ
https://github.com/openjdk/jdk/blob/4679e9aa00c098cff715fb4deeb4d736e1063571/src/java.base/share/classes/java/util/Formatter.java#L2105-L2107

StringBuilderはAppendableを実装しているようなので、実際に呼び出されているコンストラクタはこちら
https://github.com/openjdk/jdk/blob/4679e9aa00c098cff715fb4deeb4d736e1063571/src/java.base/share/classes/java/util/Formatter.java#L2081-L2085

mith009mith009

https://github.com/openjdk/jdk/blob/4679e9aa00c098cff715fb4deeb4d736e1063571/src/java.base/share/classes/java/util/Formatter.java#L2767-L2775

ensureOpenはAppendableがnullなら例外を投げる検査用のメソッド

parseはフォーマット文字列をパースして引数をフォーマットするようなオブジェクトを返してくれていそうだ
以降の処理ではこのオブジェクト1つごとに引数を対応づけて、最終的な文字列を作り出していると思われる