String.valueOf(Object)の不満とObjectsクラス

2015/03/30

String.valueOf(Object)はObjectのtoString()を利用して文字列表現を取得することができるが、引数がnullの場合に"null"という文字列しか取得できない。
nullの場合はデフォルトの固定値を入れたい場合、Stringクラスでは対応できず、次のようなコードを書かなければならなかった。

Java7より導入されたユーティリティクラスのObjectsで、簡単に対応できるようになった。

第一引数が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等のライブラリと比べるとどうしても物足りない感もある。

-Java