- java.lang.Object
- 
- java.util.Objects
 
- 
 public final class Objects extends Object このクラスは、オブジェクトを操作するためのstaticユーティリティ・メソッド、または操作の前に特定の条件をチェックすることで構成されます。 これらのユーティリティには、オブジェクトのハッシュ・コードを計算するためのnull-safeまたはnull-tolerantメソッド、1つのオブジェクトの文字列を戻し、2つのオブジェクトを比較し、索引またはサブ範囲の値が範囲外であるかどうかをチェックするための方法が含まれています。- APIの注:
- checkIndex(int, int)、- checkFromToIndex(int, int, int)、- checkFromIndexSize(int, int, int)などの静的メソッドが用意されており、索引とサブ範囲に対応する値が範囲外であるかどうかを確認できます。 これらの静的メソッドのバリエーションでは、実行時例外および対応する例外詳細メッセージのカスタマイズがサポートされており、値が範囲外の場合にスローされます。 そのようなメソッドは、機能的なインタフェースの引数、つまり、- BiFunctionのインスタンスを受け取り、バインドされていない値を実行時例外にマッピングします。 このようなメソッドを、ラムダ式、メソッド参照、または値を取得するクラスである引数と組み合わせて使用する場合は注意が必要です。 そのような場合、機能的インタフェースの割り当てに関連するキャプチャのコストは、境界をチェックするコストを超える可能性があります。
- 導入されたバージョン:
- 1.7
 
- 
- 
メソッドのサマリー修飾子と型 メソッド 説明 static intcheckFromIndexSize(int fromIndex, int size, int length)fromIndex(inclusive)からfromIndex + size(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。static intcheckFromToIndex(int fromIndex, int toIndex, int length)fromIndex(inclusive)からtoIndex(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。static intcheckIndex(int index, int length)indexが0(inclusive)からlength(exclusive)までの範囲の境界内にあるかどうかをチェックします。static <T> intcompare(T a, T b, Comparator<? super T> c)引数が一致する場合は0を返し、それ以外の場合はc.compare(a, b)を返します。static booleandeepEquals(Object a, Object b)引数が相互に深層で等価である場合はtrueを返し、それ以外の場合はfalseを返します。static booleanequals(Object a, Object b)引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。static inthash(Object... values)一連の入力値に対してハッシュ・コードを生成します。static inthashCode(Object o)null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。static booleanisNull(Object obj)指定された参照がnullである場合はtrueを返し、そうでない場合はfalseを返します。static booleannonNull(Object obj)指定された参照がnullでない場合はtrueを返し、そうでない場合はfalseを返します。static <T> TrequireNonNull(T obj)指定されたオブジェクト参照がnullでないことを確認します。static <T> TrequireNonNull(T obj, String message)指定されたオブジェクト参照がnullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。static <T> TrequireNonNull(T obj, Supplier<String> messageSupplier)指定されたオブジェクト参照がnullでないことを確認し、nullの場合はカスタマイズされたNullPointerExceptionをスローします。static <T> TrequireNonNullElse(T obj, T defaultObj)非nullの場合は最初の引数を返し、それ以外の場合は非nullの第2引数を返します。static <T> TrequireNonNullElseGet(T obj, Supplier<? extends T> supplier)null以外の場合は最初の引数を返し、そうでなければsupplier.get()の非null値を返します。static StringtoString(Object o)非null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。static StringtoString(Object o, String nullDefault)最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。
 
- 
- 
- 
メソッドの詳細- 
equalspublic static boolean equals(Object a, Object b) 引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。 したがって、両方の引数がnullの場合はtrueが返され、1つの引数だけがnullの場合はfalseが返されます。 それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。- パラメータ:
- a- オブジェクト
- b-- aと等しいかどうかを比較するオブジェクト
- 戻り値:
- 引数が相互に等しい場合はtrue、それ以外の場合はfalse
- 関連項目:
- Object.equals(Object)
 
 - 
deepEqualspublic static boolean deepEquals(Object a, Object b) 引数が相互に深層で等価である場合はtrueを返し、それ以外の場合はfalseを返します。 2つのnull値は相互に深層で等価です。 両方の引数が配列の場合は、Arrays.deepEqualsのアルゴリズムを使用して等しいかどうかが判定されます。 それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。- パラメータ:
- a- オブジェクト
- b-- aと深層で等価であるかどうかを比較するオブジェクト
- 戻り値:
- 引数が相互に深層で等価である場合はtrue、それ以外の場合はfalse
- 関連項目:
- Arrays.deepEquals(Object[], Object[]),- equals(Object, Object)
 
 - 
hashCodepublic static int hashCode(Object o) null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。- パラメータ:
- o- オブジェクト
- 戻り値:
- 引数がnullでない場合はそのハッシュ・コード、引数がnullの場合は0
- 関連項目:
- Object.hashCode()
 
 - 
hashpublic 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()
 
 - 
toStringpublic static String toString(Object o) 非null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。- パラメータ:
- o- オブジェクト
- 戻り値:
- 非null引数の場合はtoStringを呼び出し、null引数の場合は"null"を呼び出した結果
- 関連項目:
- Object.toString(),- String.valueOf(Object)
 
 - 
toStringpublic static String toString(Object o, String nullDefault) 最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。- パラメータ:
- o- オブジェクト
- nullDefault- 最初の引数が- nullの場合に返す文字列
- 戻り値:
- 最初の引数がnullでない場合はそれに対するtoStringの呼出し結果、それ以外の場合は2番目の引数。
- 関連項目:
- toString(Object)
 
 - 
comparepublic static <T> int compare(T a, T b, Comparator<? super T> c)引数が一致する場合は0を返し、それ以外の場合はc.compare(a, b)を返します。 したがって、両方の引数がnullの場合は0が返されます。引数の1つが nullのときは、NullPointerExceptionがスローされる場合とそうでない場合があります。これは、Comparatorでnull値の順序付けポリシーが選択されていれば、そのポリシーによって決まります。- 型パラメータ:
- T- 比較されるオブジェクトの型
- パラメータ:
- a- オブジェクト
- b-- aと比較されるオブジェクト
- c- 最初の2つの引数を比較する- Comparator
- 戻り値:
- 引数が一致する場合は0、それ以外の場合はc.compare(a, b)。
- 関連項目:
- Comparable,- Comparator
 
 - 
requireNonNullpublic static <T> T requireNonNull(T obj) 指定されたオブジェクト参照がnullでないことを確認します。 このメソッドは、次に示すように、メソッドとコンストラクタでパラメータを検証することを主な目的として設計されています。public Foo(Bar bar) { this.bar = Objects.requireNonNull(bar); }- 型パラメータ:
- T- その参照の型
- パラメータ:
- obj- nullかどうかが判定されるオブジェクト参照
- 戻り値:
- obj(- nullでない場合)
- 例外:
- NullPointerException-- objが- nullである場合
 
 - 
requireNonNullpublic 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である場合
 
 - 
isNullpublic static boolean isNull(Object obj) 指定された参照がnullである場合はtrueを返し、そうでない場合はfalseを返します。
 - 
nonNullpublic static boolean nonNull(Object obj) 指定された参照がnullでない場合はtrueを返し、そうでない場合はfalseを返します。
 - 
requireNonNullElsepublic static <T> T requireNonNullElse(T obj, T defaultObj)非nullの場合は最初の引数を返し、それ以外の場合は非nullの第2引数を返します。- 型パラメータ:
- T- その参照の型
- パラメータ:
- obj- オブジェクト
- defaultObj- 最初の引数が- nullかどうかを返す非- nullオブジェクト
- 戻り値:
- null以外の場合は最初の引数、それ以外の場合は2番目の引数- null
- 例外:
- NullPointerException-- objがヌルで、- defaultObjが- nullの場合
- 導入されたバージョン:
- 9
 
 - 
requireNonNullElseGetpublic static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)null以外の場合は最初の引数を返し、そうでなければsupplier.get()の非null値を返します。- 型パラメータ:
- T- 最初の引数の型と戻り値の型
- パラメータ:
- obj- オブジェクト
- supplier- 最初の引数が- nullならば、非- nullオブジェクトの戻り値
- 戻り値:
- nullでない場合は最初の引数、そうでない場合は- supplier.get()からの値です。
- 例外:
- NullPointerException-- objがヌルで、- supplierが- nullまたは- supplier.get()のいずれかの値が- nullの場合
- 導入されたバージョン:
- 9
 
 - 
requireNonNullpublic 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である場合
- 導入されたバージョン:
- 1.8
 
 - 
checkIndexpublic static int checkIndex(int index, int length)indexが0(inclusive)からlength(exclusive)までの範囲の境界内にあるかどうかをチェックします。次のいずれかの品質に当てはまる場合、 indexは範囲外として定義されます。- index < 0
- index >= length
- length < 0は、前の不等式から暗示されています
 - パラメータ:
- index- インデックス
- length- 範囲の上限(exclusive)
- 戻り値:
- indexが範囲の範囲内にある場合
- 例外:
- IndexOutOfBoundsException-- indexが範囲外であるかどうか
- 導入されたバージョン:
- 9
 
 - 
checkFromToIndexpublic static int checkFromToIndex(int fromIndex, int toIndex, int length)fromIndex(inclusive)からtoIndex(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。次のいずれかの粒度がtrueの場合、そのサブ範囲は範囲外と定義されます。 - fromIndex < 0
- fromIndex > toIndex
- toIndex > length
- length < 0は、前の不等式から暗示されています
 - パラメータ:
- fromIndex- サブレンジの下限(inclusive)
- toIndex- サブレンジの上限(exclusive)
- length- 範囲の上限(exclusive)を設定
- 戻り値:
- fromIndex範囲の範囲内のサブレンジの場合
- 例外:
- IndexOutOfBoundsException- サブ・レンジが範囲外かどうか
- 導入されたバージョン:
- 9
 
 - 
checkFromIndexSizepublic static int checkFromIndexSize(int fromIndex, int size, int length)fromIndex(inclusive)からfromIndex + size(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。次のいずれかの粒度がtrueの場合、そのサブ範囲は範囲外と定義されます。 - fromIndex < 0
- size < 0
- fromIndex + size > length、整数オーバーフローを考慮
- length < 0は、前の不等式から暗示されています
 - パラメータ:
- fromIndex- サブインターバルの下限(inclusive)
- size- サブレンジのサイズ
- length- 範囲の上限(exclusive)
- 戻り値:
- fromIndex範囲の範囲内のサブレンジの場合
- 例外:
- IndexOutOfBoundsException- サブ・レンジが範囲外かどうか
- 導入されたバージョン:
- 9
 
 
- 
 
-