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 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
引数が相互に等しい場合は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)
-
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
非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)
-
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
指定されたオブジェクト参照が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は範囲外として定義されます。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
-