String.valueOf(Object)
はObjectのtoString()
を利用して文字列表現を取得することができるが、引数がnullの場合に"null"
という文字列しか取得できない。
nullの場合はデフォルトの固定値を入れたい場合、Stringクラスでは対応できず、次のようなコードを書かなければならなかった。
String strExp = obj == null ? obj.toString() : "default";
Java7より導入されたユーティリティクラスのObjects
で、簡単に対応できるようになった。
Objects.toString(Object o, String nullDefault);
第一引数がnullの時は第二引数のnullDefaultを返してくれる。
Apache CommonsのObjectUtilsにも同じメソッドがあるが、Objectsクラスのおかげで標準で対応できる。
ObjectsクラスにはtoString
以外にもrequireNonNull
やequals
/deepEquals
等、便利なメソッドが提供されている。
toString
同様に、equals
ではApache CommonsのStringUtils.equals
を置き換えられる。
とはいっても、isEmpty
/isNotEmpty
をはじめString系の便利なライブラリが盛りだくさんのStringUtilsはわざわざ置き換えなくてもいいかもしれない。
Javaの末尾に"s"がつくユーティリティ系のクラス(Arrays、Collections等)は便利だけど、CommonsやGoogle等のライブラリと比べるとどうしても物足りない感もある。