java.lang.Object
java.util.Objects
public final class Objects extends Object
このクラスは、オブジェクトを操作するための
staticユーティリティ・メソッド、または操作の前に特定の条件をチェックすることで構成されます。 これらのユーティリティには、オブジェクトのハッシュ・コードを計算するためのnull-safeまたはnull-tolerantメソッド、1つのオブジェクトの文字列を戻し、2つのオブジェクトを比較し、索引またはサブ範囲の値が範囲外であるかどうかをチェックするための方法が含まれています。 - 導入されたバージョン:
- 1.7
- 
メソッドのサマリー修飾子と型メソッド説明static intcheckFromIndexSize(int fromIndex, int size, int length)fromIndex(inclusive)からfromIndex + size(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。static longcheckFromIndexSize(long fromIndex, long size, long 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 longcheckFromToIndex(long fromIndex, long toIndex, long length)fromIndex(inclusive)からtoIndex(exclusive)までのサブ・レンジが0(inclusive)からlength(exclusive)までの範囲の範囲内にあるかどうかをチェックします。static intcheckIndex(int index, int length)indexが0(inclusive)からlength(exclusive)までの範囲の境界内にあるかどうかをチェックします。static longcheckIndex(long index, long 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 boolean引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。static int一連の入力値に対してハッシュ・コードを生成します。static intnull以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。static boolean指定された参照がnullである場合はtrueを返し、そうでない場合はfalseを返します。static boolean指定された参照が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 String非null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。static String最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。
- 
メソッドの詳細- 
equals引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。 その結果、両方の引数がnullの場合、trueが返されます。 それ以外の場合、最初の引数がnullでないときは、このメソッドの2番目の引数を使用して最初の引数のequalsメソッドをコールして、等価性を判断します。 それ以外の場合はfalseが返されます。- パラメータ:
- a- オブジェクト
- b-- aと等しいかどうかを比較するオブジェクト
- 戻り値:
- 引数が相互に等しい場合はtrue、それ以外の場合はfalse
- 関連項目:
- Object.equals(Object)
 
- 
deepEquals引数が相互に深層で等価である場合は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()
 
- 
toString非null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。- パラメータ:
- o- オブジェクト
- 戻り値:
- 非null引数の場合はtoStringを呼び出し、null引数の場合は"null"を呼び出した結果
- 関連項目:
- Object.toString(),- String.valueOf(Object)
 
- 
toString最初の引数が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
 
- 
requireNonNull指定されたオブジェクト参照が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
 
- 
checkIndexpublic static long checkIndex(long index, long length)indexが0(inclusive)からlength(exclusive)までの範囲の境界内にあるかどうかをチェックします。次のいずれかの品質に当てはまる場合、 indexは範囲外として定義されます。- index < 0
- index >= length
- length < 0は、前の不等式から暗示されています
 - パラメータ:
- index- インデックス
- length- 範囲の上限(exclusive)
- 戻り値:
- indexが範囲の範囲内にある場合
- 例外:
- IndexOutOfBoundsException-- indexが範囲外であるかどうか
- 導入されたバージョン:
- 16
 
- 
checkFromToIndexpublic static long checkFromToIndex(long fromIndex, long toIndex, long 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- サブ・レンジが範囲外かどうか
- 導入されたバージョン:
- 16
 
- 
checkFromIndexSizepublic static long checkFromIndexSize(long fromIndex, long size, long 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- サブ・レンジが範囲外かどうか
- 導入されたバージョン:
- 16
 
 
-