モジュール java.base
パッケージ java.util

クラスObjects

java.lang.Object
java.util.Objects

public final class Objects extends Object
このクラスは、オブジェクトを操作するためのstaticユーティリティ・メソッド、または操作の前に特定の条件をチェックすることで構成されます。 これらのユーティリティには、オブジェクトのハッシュ・コードを計算するためのnull-safeまたはnull-tolerantメソッド、1つのオブジェクトの文字列を戻し、2つのオブジェクトを比較し、索引またはサブ範囲の値が範囲外であるかどうかをチェックするための方法が含まれています。
導入されたバージョン:
1.7
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static int
    checkFromIndexSize(int fromIndex, int size, int length)
    fromIndex (inclusive)からfromIndex + size (exclusive)までのサブ・レンジが0 (inclusive)からlength (exclusive)までの範囲の範囲内にあるかどうかをチェックします。
    static long
    checkFromIndexSize(long fromIndex, long size, long length)
    fromIndex (inclusive)からfromIndex + size (exclusive)までのサブ・レンジが0 (inclusive)からlength (exclusive)までの範囲の範囲内にあるかどうかをチェックします。
    static int
    checkFromToIndex(int fromIndex, int toIndex, int length)
    fromIndex (inclusive)からtoIndex (exclusive)までのサブ・レンジが0 (inclusive)からlength (exclusive)までの範囲の範囲内にあるかどうかをチェックします。
    static long
    checkFromToIndex(long fromIndex, long toIndex, long length)
    fromIndex (inclusive)からtoIndex (exclusive)までのサブ・レンジが0 (inclusive)からlength (exclusive)までの範囲の範囲内にあるかどうかをチェックします。
    static int
    checkIndex(int index, int length)
    index0 (inclusive)からlength (exclusive)までの範囲の境界内にあるかどうかをチェックします。
    static long
    checkIndex(long index, long length)
    index0 (inclusive)からlength (exclusive)までの範囲の境界内にあるかどうかをチェックします。
    static <T> int
    compare(T a, T b, Comparator<? super T> c)
    引数が一致する場合は0を返し、それ以外の場合は c.compare(a, b)を返します。
    static boolean
    引数が相互に深層で等価である場合はtrueを返し、それ以外の場合はfalseを返します。
    static boolean
    引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。
    static int
    hash(Object... values)
    一連の入力値に対してハッシュ・コードを生成します。
    static int
    null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。
    static boolean
    指定された参照がnullである場合はtrueを返し、そうでない場合はfalseを返します。
    static boolean
    指定された参照がnullでない場合はtrueを返し、そうでない場合はfalseを返します。
    static <T> T
    指定されたオブジェクト参照が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 <T> T
    requireNonNullElse(T obj, T defaultObj)
    nullの場合は最初の引数を返し、それ以外の場合は非nullの第2引数を返します。
    static <T> T
    requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
    null以外の場合は最初の引数を返し、そうでなければsupplier.get()の非null値を返します。
    static String
    メソッドおよびhashCodeがオーバーライドされていない場合は、 Object.toStringによって戻される文字列と同等の文字列を返します。
    static String
    null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。
    static String
    toString(Object o, String nullDefault)
    最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • メソッドの詳細

    • equals

      public static boolean equals(Object a, Object b)
      引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。 その結果、両方の引数がnullの場合、trueが返されます。 それ以外の場合、最初の引数が nullでないときは、このメソッドの2番目の引数を使用して最初の引数のequalsメソッドをコールして、等価性を判断します。 それ以外の場合はfalseが返されます。
      パラメータ:
      a - オブジェクト
      b - aと等しいかどうかを比較するオブジェクト
      戻り値:
      引数が相互に等しい場合はtrue、それ以外の場合はfalse
      関連項目:
    • deepEquals

      public static boolean deepEquals(Object a, Object b)
      引数が相互に深層で等価である場合はtrueを返し、それ以外の場合はfalseを返します。 2つのnull値は相互に深層で等価です。 両方の引数が配列の場合は、Arrays.deepEqualsのアルゴリズムを使用して等しいかどうかが判定されます。 それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。
      パラメータ:
      a - オブジェクト
      b - aと深層で等価であるかどうかを比較するオブジェクト
      戻り値:
      引数が相互に深層で等価である場合はtrue、それ以外の場合はfalse
      関連項目:
    • hashCode

      public static int hashCode(Object o)
      null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。
      パラメータ:
      o - オブジェクト
      戻り値:
      引数がnullでない場合はそのハッシュ・コード、引数がnullの場合は0
      関連項目:
    • hash

      public static int hash(Object... values)
      一連の入力値に対してハッシュ・コードを生成します。 ハッシュ・コードの生成は、入力値が配列に格納され、その配列がArrays.hashCode(Object[])の呼出しでハッシュ化されたかのように処理されます。

      このメソッドは、複数のフィールドを含むオブジェクトにObject.hashCode()を実装する場合に役立ちます。 たとえば、オブジェクトに3つのフィールドx yzがある場合は、次のように記述できます。

       @Override public int hashCode() {
           return Objects.hash(x, y, z);
       }
       
      警告: 単一のオブジェクト参照が指定された場合、戻り値はそのオブジェクト参照のハッシュ・コードと同じではありません。 この値は、hashCode(Object)を呼び出すことで計算できます。

      パラメータ:
      values - ハッシュ化する値
      戻り値:
      一連の入力値のハッシュ値
      関連項目:
    • toString

      public static String toString(Object o)
      null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。
      パラメータ:
      o - オブジェクト
      戻り値:
      null引数の場合はtoStringを呼び出し、null引数の場合は"null"を呼び出した結果
      関連項目:
    • toString

      public static String toString(Object o, String nullDefault)
      最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。
      パラメータ:
      o - オブジェクト
      nullDefault - 最初の引数がnullの場合に返す文字列
      戻り値:
      最初の引数がnullでない場合はそれに対するtoStringの呼出し結果、それ以外の場合は2番目の引数。
      関連項目:
    • toIdentityString

      public static String toIdentityString(Object o)
      メソッドおよびhashCodeがオーバーライドされていない場合は、 Object.toStringによって戻される文字列と同等の文字列を返します。
      実装要件:
      メソッドは次の文字列を返します:
      o.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(o))
      実装上のノート:
      このメソッドは、オブジェクトのオーバーライド可能なメソッドをコールせずに、オブジェクトの文字列を構築します。
      パラメータ:
      o - オブジェクト
      戻り値:
      メソッドおよびhashCodeがオーバーライドされない場合、 Object.toStringによって戻される文字列に相当する文字列
      例外:
      NullPointerException - 引数がnullの場合
      導入されたバージョン:
      19
      関連項目:
    • compare

      public static <T> int compare(T a, T b, Comparator<? super T> c)
      引数が一致する場合は0を返し、それ以外の場合は c.compare(a, b)を返します。 したがって、両方の引数がnullの場合は0が返されます。

      引数の1つがnullのときは、 NullPointerExceptionがスローされる場合とそうでない場合があります。これは、Comparatornull値の順序付けポリシーが選択されていれば、そのポリシーによって決まります。

      型パラメータ:
      T - 比較されるオブジェクトの型
      パラメータ:
      a - オブジェクト
      b - aと比較されるオブジェクト
      c - 最初の2つの引数を比較するComparator
      戻り値:
      引数が一致する場合は0、それ以外の場合は c.compare(a, b)
      関連項目:
    • requireNonNull

      public static <T> T requireNonNull(T obj)
      指定されたオブジェクト参照がnullでないことを確認します。 このメソッドは、次に示すように、メソッドとコンストラクタでパラメータを検証することを主な目的として設計されています。
       public Foo(Bar bar) {
           this.bar = Objects.requireNonNull(bar);
       }
       
      型パラメータ:
      T - その参照の型
      パラメータ:
      obj - nullかどうかが判定されるオブジェクト参照
      戻り値:
      obj (nullでない場合)
      例外:
      NullPointerException - objnullである場合
    • requireNonNull

      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 - objnullである場合
    • isNull

      public static boolean isNull(Object obj)
      指定された参照がnullである場合はtrueを返し、そうでない場合はfalseを返します。
      APIのノート:
      このメソッドは、Predicate(filter(Objects::isNull))として使用するために存在します。
      パラメータ:
      obj - nullがチェックされる参照
      戻り値:
      指定された参照がnullの場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.8
      関連項目:
    • nonNull

      public static boolean nonNull(Object obj)
      指定された参照がnullでない場合はtrueを返し、そうでない場合はfalseを返します。
      APIのノート:
      このメソッドは、Predicate(filter(Objects::nonNull))として使用するために存在します。
      パラメータ:
      obj - nullがチェックされる参照
      戻り値:
      指定された参照がnull以外の場合はtrue、それ以外の場合はfalse
      導入されたバージョン:
      1.8
      関連項目:
    • requireNonNullElse

      public static <T> T requireNonNullElse(T obj, T defaultObj)
      nullの場合は最初の引数を返し、それ以外の場合は非nullの第2引数を返します。
      型パラメータ:
      T - その参照の型
      パラメータ:
      obj - オブジェクト
      defaultObj - 最初の引数がnullかどうかを返す非nullオブジェクト
      戻り値:
      null以外の場合は最初の引数、それ以外の場合は2番目の引数null
      例外:
      NullPointerException - objがヌルで、defaultObjnullの場合
      導入されたバージョン:
      9
    • requireNonNullElseGet

      public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)
      null以外の場合は最初の引数を返し、そうでなければsupplier.get()の非null値を返します。
      型パラメータ:
      T - 最初の引数の型と戻り値の型
      パラメータ:
      obj - オブジェクト
      supplier - 最初の引数がnullならば、非nullオブジェクトの戻り値
      戻り値:
      nullでない場合は最初の引数、そうでない場合はsupplier.get()からの値です。
      例外:
      NullPointerException - objがヌルで、suppliernullまたはsupplier.get()のいずれかの値がnullの場合
      導入されたバージョン:
      9
    • requireNonNull

      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 - objnullである場合
      導入されたバージョン:
      1.8
    • checkIndex

      public static int checkIndex(int index, int length)
      index0 (inclusive)からlength (exclusive)までの範囲の境界内にあるかどうかをチェックします。

      次のいずれかの品質に当てはまる場合、indexは範囲外として定義されます。

      • index < 0
      • index >= length
      • length < 0は、前の不等式から暗示されています

      パラメータ:
      index - インデックス
      length - 範囲の上限(exclusive)
      戻り値:
      indexが範囲の範囲内にある場合
      例外:
      IndexOutOfBoundsException - indexが範囲外であるかどうか
      導入されたバージョン:
      9
    • checkFromToIndex

      public 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
    • checkFromIndexSize

      public 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
    • checkIndex

      public static long checkIndex(long index, long length)
      index0 (inclusive)からlength (exclusive)までの範囲の境界内にあるかどうかをチェックします。

      次のいずれかの品質に当てはまる場合、indexは範囲外として定義されます。

      • index < 0
      • index >= length
      • length < 0は、前の不等式から暗示されています

      パラメータ:
      index - インデックス
      length - 範囲の上限(exclusive)
      戻り値:
      indexが範囲の範囲内にある場合
      例外:
      IndexOutOfBoundsException - indexが範囲外であるかどうか
      導入されたバージョン:
      16
    • checkFromToIndex

      public 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
    • checkFromIndexSize

      public 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