JDK7 から導入される java.util.Objects というクラスが、よく書かれるユーティリティメソッドを提供する予定である。 Sunの Joe Darcy氏は、OpenJDKの core-libs-dev グループにどのようなメソッドがこのクラスに欲しいかという質問を投げかけた。 InfoQはこの質問をより広いJavaコミュニティに提示したい。
当初の投稿で、Darcy氏はいくつかの便利そうなメソッドを強調している
- null セーフな
equals(arg1, arg2)メソッド。両方とも null であれば true を、一方だけが null なら false を返す。どちらも null でなければarg1.equals(arg2)を返す - 全てのプリミティブタイプ (int, long, 等)用の
compareTo(arg1, arg2)メソッド
Andrew John Hughes氏による、他の提案には以下のようなものがある
- リフレクションを使い、オブジェクトのすべてのフィールドを書き出す
toString(arg) - 実用的な
clone()メソッド
Martin Buchholz氏のアイデアは null セーフな hashCode() の実装である。これは null オブジェクトには0を返す。
Stephen Colebourne氏はこのクラスに良さそうなメソッドの長い一覧を作成した。これらは主に Apache Commons Lang のユーティリティクラスから選んだものであり、いくつかの例を挙げると
- null セーフな
min(comparable1, comparable2)とmax(comparable1, comparable2)。これは最小、最大のオブジェクトを返す。 (どちらの引数も null ならば null) defaultNull(obj, defaultValue)は、もし obj が null ならば defaultValue オブジェクトを返す
あなたのアイデアは?どんなメソッドが java.util.Objectsに追加されるべきか?