クラス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 (包含)からfromIndex + size (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。
    static long
    checkFromIndexSize(long fromIndex, long size, long length)
    fromIndex (包含)からfromIndex + size (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。
    static int
    checkFromToIndex(int fromIndex, int toIndex, int length)
    fromIndex (包含)からtoIndex (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。
    static long
    checkFromToIndex(long fromIndex, long toIndex, long length)
    fromIndex (包含)からtoIndex (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。
    static int
    checkIndex(int index, int length)
    index0 (包含)からlength (除外)までの範囲の境界内にあるかどうかをチェックします。
    static long
    checkIndex(long index, long length)
    index0 (包含)からlength (除外)までの範囲の境界内にあるかどうかをチェックします。
    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以外の 合は最初の引数を返し、null以外の 合はsupplier.get()の値を返します。
    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以外の 合は最初の引数を返し、null以外の 合はsupplier.get()の値を返します。
      型パラメータ:
      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 (包含)からlength (除外)までの範囲の境界内にあるかどうかをチェックします。

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

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

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

      public static int checkFromToIndex(int fromIndex, int toIndex, int length)
      fromIndex (包含)からtoIndex (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。

      次のいずれかの粒度がtrueの 合、そのサブ範囲は範囲外と定義されます。

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

      パラメータ:
      fromIndex - サブレンジの下限(包含)
      toIndex - サブレンジの上限(除外)
      length - 範囲の上限(除外)を設定
      戻り値:
      fromIndex範囲の範囲内のサブレンジの 合
      スロー:
      IndexOutOfBoundsException - サブレンジが範囲外かどうか
      導入されたバージョン:
      9
    • checkFromIndexSize

      public static int checkFromIndexSize(int fromIndex, int size, int length)
      fromIndex (包含)からfromIndex + size (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。

      次のいずれかの粒度がtrueの 合、そのサブ範囲は範囲外と定義されます。

      • fromIndex < 0
      • size < 0
      • fromIndex + size > length、整数オーバーフローを考慮
      • length < 0は、前の不等式から暗示されています

      パラメータ:
      fromIndex - サブインターバルの下限(包含)
      size - サブレンジのサイズ
      length - 範囲の上限(除外)
      戻り値:
      fromIndex範囲の範囲内のサブレンジの 合
      スロー:
      IndexOutOfBoundsException - サブレンジが範囲外かどうか
      導入されたバージョン:
      9
    • checkIndex

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

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

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

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

      public static long checkFromToIndex(long fromIndex, long toIndex, long length)
      fromIndex (包含)からtoIndex (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。

      次のいずれかの粒度がtrueの 合、そのサブ範囲は範囲外と定義されます。

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

      パラメータ:
      fromIndex - サブレンジの下限(包含)
      toIndex - サブレンジの上限(除外)
      length - 範囲の上限(除外)を設定
      戻り値:
      fromIndex範囲の範囲内のサブレンジの 合
      スロー:
      IndexOutOfBoundsException - サブレンジが範囲外かどうか
      導入されたバージョン:
      16
    • checkFromIndexSize

      public static long checkFromIndexSize(long fromIndex, long size, long length)
      fromIndex (包含)からfromIndex + size (除外)までのサブレンジが0 (包含)からlength (除外)までの範囲の範囲内にあるかどうかをチェックします。

      次のいずれかの粒度がtrueの 合、そのサブ範囲は範囲外と定義されます。

      • fromIndex < 0
      • size < 0
      • fromIndex + size > length、整数オーバーフローを考慮
      • length < 0は、前の不等式から暗示されています

      パラメータ:
      fromIndex - サブインターバルの下限(包含)
      size - サブレンジのサイズ
      length - 範囲の上限(除外)
      戻り値:
      fromIndex範囲の範囲内のサブレンジの 合
      スロー:
      IndexOutOfBoundsException - サブレンジが範囲外かどうか
      導入されたバージョン:
      16