JavaにおけるString.valueOf()
とObject.toString()
の違いをメモしておきます。
String.valueOf()
とObject.toString()
の違い
どちらもObject型をString型に変換してくれるメソッドですが、Object型の値がnull
の場合の挙動が異なります。
String.valueOf()
:"null"
という文字列を返すObject.toString()
:NullPointerException
が発生する
コードで書くと以下のとおりです。
注意点として、String.valueOf(object)
は、null
を返すのではなく、"null"
という文字列を返します。
String.valueOf()
の中身を見てみるとわかりやすいかと思います。obj == null
の場合は"null"
を返し、それ以外の場合はobj.toString()
でObject型をString型に変換していますね。
まとめ
String.valueOf()
とObject.toString()
の違いでした。Object型をString型に変換するときに、null
が値として入る可能性があるのであれば、例外が発生しないString.valueOf()
を使うのがよさそうです。