- java.lang.Object
-
- java.util.Objects
-
public final class Objects extends Object
このクラスは、オブジェクトを操作するためのstaticユーティリティ・メソッド、または操作の前に特定の条件をチェックすることで構成されます。 これらのユーティリティには、オブジェクトのハッシュ・コードを計算し、オブジェクトの文字列を返し、2つのオブジェクトを比較し、インデックスまたはサブ範囲の値が範囲外であるかどうかをチェックするnull-safeまたはnull許容メソッドが含まれます。- APIの注:
checkIndex(int, int)、checkFromToIndex(int, int, int)、およびcheckFromIndexSize(int, int, int)などの静的メソッドは、索引および部分範囲に対応する値が範囲外であるかどうかをチェックするために提供されます。 これらの静的メソッドのバリエーションは、実行時例外のカスタマイズと、値が範囲外である場合にスローされる対応する例外詳細メッセージをサポートします。 そのようなメソッドは、機能的なインタフェースの引数、つまり、BiFunctionのインスタンスを受け取り、バインドされていない値を実行時例外にマッピングします。 このようなメソッドを、ラムダ式、メソッド参照、または値を取得するクラスである引数と組み合わせて使用する場合は注意が必要です。 そのような場合、機能的インタフェースの割り当てに関連するキャプチャのコストは、境界をチェックするコストを超える可能性があります。- 導入されたバージョン:
- 1.7
-
-
メソッドのサマリー
すべてのメソッド staticメソッド 具象メソッド 修飾子と型 メソッド 説明 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番目の引数を返します。
-
-
-
メソッドの詳細
-
equals
public static boolean equals(Object a, Object b)
引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。 したがって、両方の引数がnullの場合はtrueが返され、1つの引数だけがnullの場合はfalseが返されます。 それ以外の場合は、最初の引数のequalsメソッドを使用して等しいかどうかが判定されます。- パラメータ:
a- オブジェクトb-aと等しいかどうかを比較するオブジェクト- 戻り値:
- 引数が相互に等しい場合は
true、それ以外の場合はfalse - 関連項目:
Object.equals(Object)
-
deepEquals
public 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)
-
hashCode
public static int hashCode(Object o)
null以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。- パラメータ:
o- オブジェクト- 戻り値:
- 引数が
nullでない場合はそのハッシュ・コード、引数がnullの場合は0 - 関連項目:
Object.hashCode()
-
hash
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()
-
toString
public static String toString(Object o)
非null引数に対してtoStringを呼び出し、null引数に"null"を呼び出した結果を返します。- パラメータ:
o- オブジェクト- 戻り値:
- 非
null引数の場合はtoStringを呼び出し、null引数の場合は"null"を呼び出した結果 - 関連項目:
Object.toString(),String.valueOf(Object)
-
toString
public static String toString(Object o, String nullDefault)
最初の引数がnullでない場合はそれに対するtoStringの呼出し結果を返し、それ以外の場合は2番目の引数を返します。- パラメータ:
o- オブジェクトnullDefault- 最初の引数がnullの場合に返す文字列- 戻り値:
- 最初の引数が
nullでない場合はそれに対するtoStringの呼出し結果、それ以外の場合は2番目の引数。 - 関連項目:
toString(Object)
-
compare
public 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
-
requireNonNull
public static <T> T requireNonNull(T obj)
指定されたオブジェクト参照がnullでないことを確認します。 このメソッドは、次に示すように、メソッドとコンストラクタでパラメータを検証することを主な目的として設計されています。public Foo(Bar bar) { this.bar = Objects.requireNonNull(bar); }- 型パラメータ:
T- その参照の型- パラメータ:
obj- nullかどうかが判定されるオブジェクト参照- 戻り値:
obj(nullでない場合)- 例外:
NullPointerException-objがnullである場合
-
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-objがnullである場合
-
isNull
public static boolean isNull(Object obj)
指定された参照がnullの場合はtrueを返します。それ以外の場合はfalseを返します。
-
nonNull
public static boolean nonNull(Object obj)
指定された参照がnull以外の場合はtrueを返します。それ以外の場合はfalseを返します。
-
requireNonNullElse
public static <T> T requireNonNullElse(T obj, T defaultObj)非nullの場合は最初の引数を返し、それ以外の場合は非nullの第2引数を返します。- 型パラメータ:
T- その参照の型- パラメータ:
obj- オブジェクトdefaultObj- 最初の引数がnullかどうかを返す非nullオブジェクト- 戻り値:
null以外の場合は最初の引数、それ以外の場合は2番目の引数null- 例外:
NullPointerException-objがヌルで、defaultObjがnullの場合- 導入されたバージョン:
- 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がヌルで、supplierがnullまたは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-objがnullである場合- 導入されたバージョン:
- 1.8
-
checkIndex
public static int checkIndex(int index, int length)indexが0(inclusive)からlength(exclusive)までの範囲の境界内にあるかどうかをチェックします。indexは、次の不等式のいずれかがttrueである場合、境界外であると定義されます:index < 0index >= lengthlength < 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 < 0fromIndex > toIndextoIndex > lengthlength < 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 < 0size < 0fromIndex + size > length、整数オーバーフローを考慮length < 0は、前の不等式から暗示されています
- パラメータ:
fromIndex- サブ・インターバルの下限(inclusive)size- サブ・レンジのサイズlength- 範囲の上限(exclusive)- 戻り値:
fromIndex範囲の範囲内のサブ・レンジの場合- 例外:
IndexOutOfBoundsException- サブ範囲が範囲外である場合- 導入されたバージョン:
- 9
-
-