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) index
が0
(inclusive)からlength
(exclusive)までの範囲の境界内にあるかどうかをチェックします。static long
checkIndex
(long index, long length) index
が0
(inclusive)からlength
(exclusive)までの範囲の境界内にあるかどうかをチェックします。static <T> int
compare
(T a, T b, Comparator<? super T> c) 引数が一致する場合は0を返し、それ以外の場合はc.compare(a, b)
を返します。static boolean
deepEquals
(Object a, Object b) 引数が相互に深層で等価である場合はtrue
を返し、それ以外の場合はfalse
を返します。static boolean
引数が相互に等しい場合はtrue
を返し、それ以外の場合はfalse
を返します。static int
一連の入力値のハッシュ・コードを返します。static int
null
以外の引数のハッシュ・コードを返し、引数がnull
の場合は0を返します。static boolean
指定された参照がnull
の場合はtrue
、それ以外の場合はfalse
を返します。static boolean
指定された参照がnull
以外の場合はtrue
、それ以外の場合はfalse
を返します。static <T> T
requireNonNull
(T obj) 指定されたオブジェクト参照が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
最初の引数がnull
でない場合は最初の引数でtoString
をコールし、それ以外の場合は2番目の引数を戻します。
-
メソッドの詳細
-
equals
引数が相互に等しい場合はtrue
を返し、それ以外の場合はfalse
を返します。 その結果、両方の引数がnull
の場合、true
が返されます。 それ以外の場合、最初の引数がnull
でないときは、このメソッドの2番目の引数を使用して最初の引数のequals
メソッドをコールして、等価性を判断します。 それ以外の場合はfalse
が返されます。- パラメータ:
a
- オブジェクトb
-a
と等しいかどうかを比較するオブジェクト- 戻り値:
- 引数が相互に等しい場合は
true
、それ以外の場合はfalse
- 関連項目:
-
deepEquals
引数が相互に深層で等価である場合は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
、y
、z
がある場合は、次のように記述できます。
警告: 単一のオブジェクト参照が指定された場合、戻り値はそのオブジェクト参照のハッシュ・コードと同じではありません。 この値は、@Override public int hashCode() { return Objects.hash(x, y, z); }
hashCode(Object)
を呼び出すことで計算できます。- パラメータ:
values
- ハッシュ化する値- 戻り値:
- 一連の入力値のハッシュ・コード
- 関連項目:
-
toString
-
toString
-
toIdentityString
メソッドおよび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
がスローされる場合とそうでない場合があります。これは、Comparator
でnull
値の順序付けポリシーが選択されていれば、そのポリシーによって決まります。- 型パラメータ:
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
-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
-
nonNull
-
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
以外の場合は最初の引数を返し、null
以外の場合はsupplier.get()
の値を返します。- 型パラメータ:
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 < 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) index
が0
(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
-