javaでlangなStringクラスですが、ありですか? レスポンス電文に、nullって出た日には、ぬるぽって思いました。
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
そうですね。このメソッドの目的はobj.toString()することなので、objが、not nullであることを、前提条件として、 NullPointerExceptionを投げるのが自然な気がします。
通常は、その前に、ojbのバリデーションで弾かれるので、起こりにくいケースだと思いますが、 nullならともかく、"null"って、if ("null".equals(String.valueOf(Ojb))) {}しろって言うのかと、 いろいろ考えてしまいました。
もしかすると、深い意図があるのかもしれないし、今更直せないと思うので、なんとも言えませんが、これって、有名ですか?
> このメソッドの目的はobj.toString()することなので、
…本当???
javadoc見る限り、そういう仕様にも目的にも読み取れませんぜ。「文字列表現を取得」とは明記してあるけど、それってobj.toString()とは等価じゃないよね。。?
ガッ
↑おお、これは初耳。
String.valueOf(null)と書くと、String#valueOf(char[])がコールされてNullPointerExceptionで落ちますな。
「nullへの参照じゃなくnullそのものを引数に指定すると起きる例外だよ」とあるけど、そんな破天荒コーダーがもしいたら、そっちをウンコードにノミネートしても良さそう。
ちなみに、↑のバグとこの投稿って趣旨合致してるんだっけ。
なしだとして、投稿者さんならどうあるべきだと思ってるのかしら。
単にvalueOfの仕様が自分の都合に合わない、と言っているわけではないよね。