クラスObjects
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(包含)からfromIndex + size(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。static longcheckFromIndexSize(long fromIndex, long size, long length) fromIndex(包含)からfromIndex + size(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。static intcheckFromToIndex(int fromIndex, int toIndex, int length) fromIndex(包含)からtoIndex(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。static longcheckFromToIndex(long fromIndex, long toIndex, long length) fromIndex(包含)からtoIndex(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。static intcheckIndex(int index, int length) indexが0(包含)からlength(除外)までの範囲の境界内にあるかどうかをチェックします。static longcheckIndex(long index, long length) indexが0(包含)からlength(除外)までの範囲の境界内にあるかどうかをチェックします。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 boolean引数が相互に等しい場合はtrueを返し、それ以外の場合はfalseを返します。static int一連の入力値のハッシュ・コードを返します。static intnull以外の引数のハッシュ・コードを返し、引数がnullの場合は0を返します。static boolean指定された参照がnullの場合はtrue、それ以外の場合はfalseを返します。static boolean指定された参照が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以外の場合は最初の引数を返し、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(包含)からlength(除外)までの範囲の境界内にあるかどうかをチェックします。次のいずれかの品質に当てはまる場合、
indexは範囲外として定義されます。index < 0index >= lengthlength < 0は、前の不等式から暗示されています
- パラメータ:
index- インデックスlength- 範囲の上限(除外)- 戻り値:
indexが範囲の範囲内にある場合- スロー:
IndexOutOfBoundsException-indexが範囲外であるかどうか- 導入されたバージョン:
- 9
-
checkFromToIndex
public static int checkFromToIndex(int fromIndex, int toIndex, int length) fromIndex(包含)からtoIndex(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。次のいずれかの粒度がtrueの場合、そのサブ範囲は範囲外と定義されます。
fromIndex < 0fromIndex > toIndextoIndex > lengthlength < 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 < 0size < 0fromIndex + size > length、整数オーバーフローを考慮length < 0は、前の不等式から暗示されています
- パラメータ:
fromIndex- サブインターバルの下限(包含)size- サブレンジのサイズlength- 範囲の上限(除外)- 戻り値:
fromIndex範囲の範囲内のサブレンジの場合- スロー:
IndexOutOfBoundsException- サブレンジが範囲外かどうか- 導入されたバージョン:
- 9
-
checkIndex
public static long checkIndex(long index, long length) indexが0(包含)からlength(除外)までの範囲の境界内にあるかどうかをチェックします。次のいずれかの品質に当てはまる場合、
indexは範囲外として定義されます。index < 0index >= lengthlength < 0は、前の不等式から暗示されています
- パラメータ:
index- インデックスlength- 範囲の上限(除外)- 戻り値:
indexが範囲の範囲内にある場合- スロー:
IndexOutOfBoundsException-indexが範囲外であるかどうか- 導入されたバージョン:
- 16
-
checkFromToIndex
public static long checkFromToIndex(long fromIndex, long toIndex, long length) fromIndex(包含)からtoIndex(除外)までのサブレンジが0(包含)からlength(除外)までの範囲の範囲内にあるかどうかをチェックします。次のいずれかの粒度がtrueの場合、そのサブ範囲は範囲外と定義されます。
fromIndex < 0fromIndex > toIndextoIndex > lengthlength < 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 < 0size < 0fromIndex + size > length、整数オーバーフローを考慮length < 0は、前の不等式から暗示されています
- パラメータ:
fromIndex- サブインターバルの下限(包含)size- サブレンジのサイズlength- 範囲の上限(除外)- 戻り値:
fromIndex範囲の範囲内のサブレンジの場合- スロー:
IndexOutOfBoundsException- サブレンジが範囲外かどうか- 導入されたバージョン:
- 16
-