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()を使うのがよさそうです。