Jackson JSONプロセッサライブラリのwriteNumber()メソッドに不整合が見つかりました。QUOTE_NON_NUMERIC_NUMBERSを有効にして「NaN」でwriteNumber(String)を呼び出すと、引用符で囲まれた文字列を返すことができません。これを次の例に示します。
float nan = Float.NaN;
try {
JsonGenerator jg = new JsonFactory().createGenerator(System.out);
jg.enable(JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS);
// writeNumber(String s)
jg.writeNumber(""+nan);
// writeNumber(float f)
jg.writeNumber(nan);
jg.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
実際の出力:
NaN "NaN"
期待される出力:
"NaN" "NaN"
これは予想される動作ですか、それともバグですか?