public final class Objects extends Object
staticユーティリティ・メソッドで構成されます。このようなユーティリティには、オブジェクトのハッシュ・コードを計算したり、オブジェクトを表す文字列を返したり、2つのオブジェクトを比較したりするために、nullセーフまたはnullを許容するメソッドが含まれます。| 修飾子と型 | メソッドと説明 |
|---|---|
static <T> int |
compare(T a, T b, Comparator<? super T> c)
引数が一致する場合は0を返し、それ以外の場合は
c.compare(a, b)を返します。 |
static boolean |
deepEquals(Object a, Object b)
引数が相互に深層で等価である場合は
trueを返し、それ以外の場合はfalseを返します。 |
static boolean |
equals(Object a, Object b)
引数が相互に等しい場合は
trueを返し、それ以外の場合はfalseを返します。 |
static int |
hash(Object... values)
一連の入力値に対してハッシュ・コードを生成します。
|
static int |
hashCode(Object o)
null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。 |
static boolean |
isNull(Object obj)
指定された参照が
nullの場合はtrueを返します。それ以外の場合はfalseを返します。 |
static boolean |
nonNull(Object obj)
指定された参照が
null以外の場合はtrueを返します。それ以外の場合はfalseを返します。 |
static <T> T |
requireNonNull(T obj)
指定されたオブジェクト参照が
nullでないことを確認します。 |
static <T> T |
requireNonNull(T obj, String message)
指定されたオブジェクト参照が
nullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。 |
static <T> T |
requireNonNull(T obj, Supplier<String> messageSupplier)
指定されたオブジェクト参照が
nullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。 |
static String |
toString(Object o)
引数が
nullでない場合はtoStringの呼出し結果を返し、nullの場合は"null"を返します。 |
static String |
toString(Object o, String nullDefault)
最初の引数が
nullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。 |
public static boolean equals(Object a, Object b)
trueを返し、それ以外の場合はfalseを返します。したがって、両方の引数がnullの場合はtrueが返され、1つの引数だけがnullの場合はfalseが返されます。それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。a - オブジェクトb - aと等しいかどうかを比較するオブジェクトtrue、それ以外の場合はfalseObject.equals(Object)public static boolean deepEquals(Object a, Object b)
trueを返し、それ以外の場合はfalseを返します。2つのnull値は相互に深層で等価です。両方の引数が配列の場合は、Arrays.deepEqualsのアルゴリズムを使用して等しいかどうかが判定されます。それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。a - オブジェクトb - aと深層で等価であるかどうかを比較するオブジェクトtrue、それ以外の場合はfalseArrays.deepEquals(Object[], Object[]), equals(Object, Object)public static int hashCode(Object o)
null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。o - オブジェクトnullでない場合はそのハッシュ・コード、引数がnullの場合は0Object.hashCode()public static int hash(Object... values)
Arrays.hashCode(Object[])の呼出しでハッシュ化されたかのように処理されます。
このメソッドは、複数のフィールドを含むオブジェクトにObject.hashCode()を実装する場合に役立ちます。たとえば、オブジェクトに3つのフィールドx、y、zがある場合は、次のように記述できます。
@Override public int hashCode() {
return Objects.hash(x, y, z);
}
警告: 単一のオブジェクト参照が指定された場合、戻り値はそのオブジェクト参照のハッシュ・コードと同じではありません。この値は、hashCode(Object)を呼び出すことで計算できます。values - ハッシュ化する値Arrays.hashCode(Object[]), List.hashCode()public static String toString(Object o)
nullでない場合はtoStringの呼出し結果を返し、nullの場合は"null"を返します。o - オブジェクトnullでない場合はtoStringの呼出し結果、引数がnullの場合は"null"Object.toString(), String.valueOf(Object)public static String toString(Object o, String nullDefault)
nullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。o - オブジェクトnullDefault - 最初の引数がnullの場合に返す文字列nullでない場合はそれに対するtoStringの呼出し結果、それ以外の場合は2番目の引数。toString(Object)public static <T> int compare(T a,
T b,
Comparator<? super T> c)
c.compare(a, b)を返します。したがって、両方の引数がnullの場合は0が返されます。
引数の1つがnullのときは、NullPointerExceptionがスローされる場合とそうでない場合があります。これは、Comparatorでnull値の順序付けポリシーが選択されていれば、そのポリシーによって決まります。
T - 比較されるオブジェクトの型a - オブジェクトb - aと比較されるオブジェクトc - 最初の2つの引数を比較するComparatorc.compare(a, b)。Comparable, Comparatorpublic static <T> T requireNonNull(T obj)
nullでないことを確認します。このメソッドは、次に示すように、メソッドとコンストラクタでパラメータを検証することを主な目的として設計されています。
public Foo(Bar bar) {
this.bar = Objects.requireNonNull(bar);
}
T - その参照の型obj - nullかどうかが判定されるオブジェクト参照obj (nullでない場合)NullPointerException - objがnullである場合public static <T> T requireNonNull(T obj,
String message)
nullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。このメソッドは、次に示すように、パラメータが複数のメソッドとコンストラクタでパラメータを検証することを主な目的として設計されています。
public Foo(Bar bar, Baz baz) {
this.bar = Objects.requireNonNull(bar, "bar must not be null");
this.baz = Objects.requireNonNull(baz, "baz must not be null");
}
T - その参照の型obj - nullかどうかが判定されるオブジェクト参照message - NullPointerExceptionがスローされた場合に使用する詳細メッセージobj (nullでない場合)NullPointerException - objがnullである場合public static boolean isNull(Object obj)
nullの場合はtrueを返します。それ以外の場合はfalseを返します。public static boolean nonNull(Object obj)
null以外の場合はtrueを返します。それ以外の場合はfalseを返します。public static <T> T requireNonNull(T obj,
Supplier<String> messageSupplier)
nullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。
メソッドrequireNonNull(Object, String)とは異なり、このメソッドはnullチェックが行われる後までメッセージの作成を遅延できます。これはnull以外の場合にパフォーマンスが向上する場合がありますが、このメソッドを呼び出すことを決定するときは、メッセージ・サプライヤを作成するコストが文字列メッセージを単に直接作成するコストよりも小さいことを考慮するようにしてください。
T - その参照の型obj - nullかどうかが判定されるオブジェクト参照messageSupplier - NullPointerExceptionがスローされる場合に使用される詳細メッセージのサプライヤobj (nullでない場合)NullPointerException - objがnullである場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.