クラス ObjectUtils
主にフレームワーク内での内部使用向け。
このクラスにいくつかの機能強化を提供してくれた Alex Ruiz に感謝します!
- 導入:
- 19.03.2004
- 作成者:
- Juergen Hoeller, Keith Donald, Rod Johnson, Rob Harrop, Chris Beams, Sam Brannen
- 関連事項:
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明static <A,
O extends A>
A[]addObjectToArray
(A[] array, O obj) 指定されたオブジェクトを指定された配列に追加し、入力配列の内容と指定されたオブジェクトで構成される新しい配列を返します。static <A,
O extends A>
A[]addObjectToArray
(A[] array, O obj, int position) 指定されたオブジェクトを指定された配列の指定された位置に追加し、入力配列の内容と指定されたオブジェクトで構成される新しい配列を返します。static <E extends EnumSE<?>>
EcaseInsensitiveValueOf
(E[] enumValues, StringSE constant) Enum.valueOf(Class, String)
SE の大文字と小文字を区別しない代替。static boolean
containsConstant
(EnumSE<?>[] enumValues, StringSE constant) 列挙定数の指定された配列に指定された名前の定数が含まれているかどうかを確認し、一致を判断するときに大文字と小文字を無視します。static boolean
containsConstant
(EnumSE<?>[] enumValues, StringSE constant, boolean caseSensitive) 指定された列挙定数の配列に、指定された名前の定数が含まれているかどうかを確認します。static boolean
containsElement
(ObjectSE[] array, ObjectSE element) 指定された配列に指定された要素が含まれているかどうかを確認します。static StringSE
getDisplayString
(ObjectSE obj) obj
がnull
でない場合、コンテンツベースの文字列表現を返します。それ以外の場合は、空の文字列を返します。static StringSE
オブジェクトの ID ハッシュコードの 16 進文字列形式を返します。static StringSE
identityToString
(ObjectSE obj) オブジェクトの全体的なアイデンティティの文字列表現を返します。static boolean
指定されたオブジェクトが配列であるかどうかを判別します。オブジェクト配列またはプリミティブ配列のいずれかです。static boolean
指定されたスロー可能オブジェクトがチェックされた例外であるかどうかを返します。つまり、RuntimeException でもエラーでもありません。static boolean
isCompatibleWithThrowsClause
(ThrowableSE ex, ClassSE<?>... declaredExceptions) throws
句で宣言されているように、指定された例外が指定された例外型と互換性があるかどうかを確認します。static boolean
指定されたオブジェクトが空かどうかを判別します。static boolean
指定された配列が空かどうかを判断します: すなわちstatic StringSE
指定されたオブジェクトのクラス名を決定します。static StringSE
以下で説明するように、提供されたオブジェクトの null セーフで簡潔な文字列表現を生成します。static boolean
nullSafeEquals
(ObjectSE o1, ObjectSE o2) 指定されたオブジェクトが等しいかどうかを判別し、両方がnull
の場合はtrue
を返し、一方のみがnull
の場合はfalse
を返します。static int
nullSafeHash
(ObjectSE... elements) 指定された要素のハッシュコードを返し、要素ごとにnullSafeHashCode(Object)
に委譲します。static int
nullSafeHashCode
(boolean[] array) 使用すべきではありません。static int
nullSafeHashCode
(byte[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(byte[])
SE を推奨static int
nullSafeHashCode
(char[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(char[])
SE を推奨static int
nullSafeHashCode
(double[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(double[])
SE を推奨static int
nullSafeHashCode
(float[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(float[])
SE を推奨static int
nullSafeHashCode
(int[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(int[])
SE を推奨static int
nullSafeHashCode
(long[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(long[])
SE を推奨static int
nullSafeHashCode
(short[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(short[])
SE を推奨static int
nullSafeHashCode
(ObjectSE obj) 指定されたオブジェクトのハッシュコードを返します。通常はObject#hashCode()
の値です。static int
nullSafeHashCode
(ObjectSE[] array) 使用すべきではありません。6.1 現在、Arrays.hashCode(Object[])
SE を推奨static StringSE
nullSafeToString
(boolean[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(byte[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(char[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(double[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(float[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(int[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(long[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(short[] array) 指定された配列の内容のストリング表現を返します。static StringSE
nullSafeToString
(ObjectSE obj) 指定されたオブジェクトの文字列表現を返します。static StringSE
nullSafeToString
(ObjectSE[] array) 指定された配列の内容のストリング表現を返します。static ObjectSE[]
toObjectArray
(ObjectSE source) 指定された配列 (プリミティブ配列の場合もあります) をオブジェクト配列 (必要に応じて、プリミティブラッパーオブジェクトの配列) に変換します。static ObjectSE
unwrapOptional
(ObjectSE obj) 潜在的にOptional
SE である指定されたオブジェクトのラップを解除します。
コンストラクターの詳細
ObjectUtils
public ObjectUtils()
メソッドの詳細
isCheckedException
指定されたスロー可能オブジェクトがチェックされた例外であるかどうかを返します。つまり、RuntimeException でもエラーでもありません。- パラメーター:
ex
- チェックするスロー可能オブジェクト- 戻り値:
- スロー可能オブジェクトがチェック済み例外かどうか
- 関連事項:
isCompatibleWithThrowsClause
public static boolean isCompatibleWithThrowsClause(ThrowableSE ex, @Nullable ClassSE<?>... declaredExceptions) throws
句で宣言されているように、指定された例外が指定された例外型と互換性があるかどうかを確認します。- パラメーター:
ex
- チェックする例外declaredExceptions
- throws 句で宣言された例外型- 戻り値:
- 指定された例外に互換性があるかどうか
isArray
指定されたオブジェクトが配列であるかどうかを判別します。オブジェクト配列またはプリミティブ配列のいずれかです。- パラメーター:
obj
- チェックするオブジェクト
isEmpty
指定された配列が空であるかどうかを確認します。つまり、null
または長さがゼロです。- パラメーター:
array
- チェックする配列- 関連事項:
isEmpty
指定されたオブジェクトが空かどうかを判別します。このメソッドは、次のオブジェクト型をサポートしています。
Optional
:Optional.isPresent()
でない場合は空と見なされますArray
: 長さがゼロの場合は空と見なされますCharSequence
SE : 長さがゼロの場合は空と見なされますCollection
SE :Collection.isEmpty()
へのデリゲートMap
SE :Map.isEmpty()
へのデリゲート
指定されたオブジェクトが null でなく、前述のサポートされている型のいずれでもない場合、このメソッドは
false
を返します。- パラメーター:
obj
- チェックするオブジェクト- 戻り値:
- オブジェクトが
null
または空の場合はtrue
- 導入:
- 4.2
- 関連事項:
unwrapOptional
潜在的にOptional
SE である指定されたオブジェクトのラップを解除します。- パラメーター:
obj
- 候補オブジェクト- 戻り値:
Optional
内に保持されている値、Optional
が空の場合はnull
、単に指定されたオブジェクトをそのまま- 導入:
- 5.0
containsElement
指定された配列に指定された要素が含まれているかどうかを確認します。- パラメーター:
array
- チェックする配列 (null
の場合があります。その場合、戻り値は常にfalse
になります。)element
- チェックする要素- 戻り値:
- 指定された配列で要素が見つかったかどうか
containsConstant
列挙定数の指定された配列に指定された名前の定数が含まれているかどうかを確認し、一致を判断するときに大文字と小文字を無視します。- パラメーター:
enumValues
- チェックする列挙値。通常MyEnum.values()
を介して取得されますconstant
- 検索する定数名 (null または空の文字列であってはなりません)- 戻り値:
- 指定された配列で定数が見つかったかどうか
containsConstant
public static boolean containsConstant(EnumSE<?>[] enumValues, StringSE constant, boolean caseSensitive) 指定された列挙定数の配列に、指定された名前の定数が含まれているかどうかを確認します。- パラメーター:
enumValues
- チェックする列挙値。通常MyEnum.values()
を介して取得されますconstant
- 検索する定数名 (null または空の文字列であってはなりません)caseSensitive
- 大文字と小文字が一致を判断する上で重要かどうか- 戻り値:
- 指定された配列で定数が見つかったかどうか
caseInsensitiveValueOf
Enum.valueOf(Class, String)
SE の大文字と小文字を区別しない代替。- 型パラメーター:
E
- 具体的な列挙型- パラメーター:
enumValues
- 問題のすべての Enum 定数の配列、通常Enum.values()
ごとconstant
- 列挙値を取得する定数- 例外:
IllegalArgumentExceptionSE
- 指定された定数が指定された列挙値の配列で見つからない場合この例外を回避するには、containsConstant(Enum[], String)
をガードとして使用してください。
addObjectToArray
指定されたオブジェクトを指定された配列に追加し、入力配列の内容と指定されたオブジェクトで構成される新しい配列を返します。- パラメーター:
array
- 追加する配列 (null
にすることができます)obj
- 追加するオブジェクト- 戻り値:
- 新しい配列 (同じコンポーネント型の ;
null
)
addObjectToArray
public static <A,O extends A> A[] addObjectToArray(@Nullable A[] array, @Nullable O obj, int position) 指定されたオブジェクトを指定された配列の指定された位置に追加し、入力配列の内容と指定されたオブジェクトで構成される新しい配列を返します。- パラメーター:
array
- 追加する配列 (null
にすることができます)obj
- 追加するオブジェクトposition
- オブジェクトを追加する位置- 戻り値:
- 新しい配列 (同じコンポーネント型の ;
null
) - 導入:
- 6.0
toObjectArray
指定された配列 (プリミティブ配列の場合もあります) をオブジェクト配列 (必要に応じて、プリミティブラッパーオブジェクトの配列) に変換します。null
ソース値または空のプリミティブ配列は、空のオブジェクト配列に変換されます。- パラメーター:
source
- (潜在的にプリミティブな)配列- 戻り値:
- 対応するオブジェクト配列 (非
null
) - 例外:
IllegalArgumentExceptionSE
- パラメーターが配列でない場合
nullSafeEquals
@Contract("null, null -> true; null, _ -> false; _, null -> false") public static boolean nullSafeEquals(@Nullable ObjectSE o1, @Nullable ObjectSE o2) 指定されたオブジェクトが等しいかどうかを判別し、両方がnull
の場合はtrue
を返し、一方のみがnull
の場合はfalse
を返します。配列を
Arrays.equals
と比較し、配列参照ではなく配列要素に基づいて等価性チェックを実行します。- パラメーター:
o1
- 比較する最初のオブジェクトo2
- 比較する 2 番目のオブジェクト- 戻り値:
- 指定されたオブジェクトが等しいかどうか
- 関連事項:
nullSafeHash
指定された要素のハッシュコードを返し、要素ごとにnullSafeHashCode(Object)
に委譲します。Objects.hash(Object...)
SE とは異なり、このメソッドは配列である要素を処理できます。- パラメーター:
elements
- ハッシュされる要素- 戻り値:
- 要素のハッシュ値
- 導入:
- 6.1
nullSafeHashCode
指定されたオブジェクトのハッシュコードを返します。通常はObject#hashCode()
の値です。オブジェクトが配列の場合、このメソッドはいずれかのArrays.hashCode
メソッドに委譲します。オブジェクトがnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(Object[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(boolean[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(byte[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(char[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(double[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(float[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(int[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(long[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。nullSafeHashCode
使用すべきではありません。6.1 現在、Arrays.hashCode(short[])
SE を推奨指定された配列の内容に基づいてハッシュコードを返します。array
がnull
の場合、このメソッドは 0 を返します。identityToString
オブジェクトの全体的なアイデンティティの文字列表現を返します。- パラメーター:
obj
- オブジェクト (null
の場合があります)- 戻り値:
- String 表現としてのオブジェクトの ID、またはオブジェクトが
null
の場合は空の String
getIdentityHexString
オブジェクトの ID ハッシュコードの 16 進文字列形式を返します。- パラメーター:
obj
- オブジェクト- 戻り値:
- 16 進表記のオブジェクトの ID コード
getDisplayString
obj
がnull
でない場合、コンテンツベースの文字列表現を返します。それ以外の場合は、空の文字列を返します。null
値に対して "null" ではなく空の文字列を返す点で、nullSafeToString(Object)
とは異なります。- パラメーター:
obj
- 表示文字列を構築するオブジェクト- 戻り値:
obj
の表示文字列表現- 関連事項:
nullSafeClassName
指定されたオブジェクトのクラス名を決定します。obj
がnull
の場合、"null"
文字列を返します。- パラメーター:
obj
- イントロスペクトするオブジェクト (null
の場合があります)- 戻り値:
- 対応するクラス名
nullSafeToString
指定されたオブジェクトの文字列表現を返します。配列の場合、コンテンツの文字列表現を構築します。
obj
がnull
の場合、"null"
文字列を返します。- パラメーター:
obj
- 文字列表現を構築するオブジェクト- 戻り値:
obj
の文字列表現- 関連事項:
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeToString
指定された配列の内容のストリング表現を返します。文字列表現は、波括弧(
"{}"
)で囲まれた配列の要素のリストで構成されます。隣接する要素は、文字", "
(コンマの後にスペースが続く)で区切られます。array
がnull
の場合、"null"
文字列を返します。- パラメーター:
array
- 文字列表現を構築する配列- 戻り値:
array
の文字列表現
nullSafeConciseToString
以下で説明するように、提供されたオブジェクトの null セーフで簡潔な文字列表現を生成します。生成される文字列の長さを制限する必要がある場合は、
nullSafeToString(Object)
よりもこの方法を優先してください。戻り値:
-
obj
がnull
の場合は"null"
"Optional.empty"
(obj
が空のOptional
SE の場合)"Optional[<concise-string>]"
(obj
が空ではないOptional
の場合)。<concise-string>
は、Optional
に含まれるオブジェクトに対してこのメソッドを呼び出した結果です。-
obj
が空の配列の場合は"{}"
"{...}"
(obj
がMap
SE または空でない配列の場合)"[...]"
(obj
がCollection
SE の場合)obj
がClass
SE の場合はクラス名obj
がCharset
SE の場合は文字セット名obj
がTimeZone
SE の場合は TimeZone IDobj
がZoneId
SE の場合はゾーン IDobj
がString
SE またはCharSequence
SE の場合、文字列が切り捨てられる可能性がありますobj
が単純な値型で、そのtoString()
メソッドが null 以外の値を返す場合、文字列が切り捨てられる可能性があります。- それ以外の場合は、
"@"
と連結されたオブジェクトの型名の文字列表現と、オブジェクトの ID ハッシュコードの 16 進文字列形式
このメソッドのコンテキストでは、単純な値型は、プリミティブラッパー (
Void
SE を除く)、Enum
SE、Number
SE、Date
SE、Temporal
SE、File
SE、Path
SE、URI
SE、URL
SE、InetAddress
SE、Currency
SE、Locale
SE、UUID
SE、Pattern
SE のいずれかになります。- パラメーター:
obj
- 文字列表現を構築するオブジェクト- 戻り値:
- 提供されたオブジェクトの簡潔な文字列表現
- 導入:
- 5.3.27
- 関連事項:
-
Arrays.hashCode(boolean[])
SE を推奨