public abstract class ObjectUtils extends Object
Mainly for internal use within the framework.
Thanks to Alex Ruiz for contributing several enhancements to this class!
ClassUtils
,
CollectionUtils
,
StringUtils
Constructor and Description |
---|
ObjectUtils() |
Modifier and Type | Method and Description |
---|---|
static <A,O extends A> |
addObjectToArray(A[] array,
O obj)
Append the given object to the given array, returning a new array
consisting of the input array contents plus the given object.
|
static <E extends Enum<?>> |
caseInsensitiveValueOf(E[] enumValues,
String constant)
Case insensitive alternative to
Enum.valueOf(Class, String) . |
static boolean |
containsConstant(Enum<?>[] enumValues,
String constant)
Check whether the given array of enum constants contains a constant with the given name,
ignoring case when determining a match.
|
static boolean |
containsConstant(Enum<?>[] enumValues,
String constant,
boolean caseSensitive)
Check whether the given array of enum constants contains a constant with the given name.
|
static boolean |
containsElement(Object[] array,
Object element)
Check whether the given array contains the given element.
|
static String |
getDisplayString(Object obj)
Return a content-based String representation if
obj is
not null ; otherwise returns an empty String. |
static String |
getIdentityHexString(Object obj)
Return a hex String form of an object's identity hash code.
|
static int |
hashCode(boolean bool)
Deprecated.
as of Spring Framework 5.0, in favor of the native JDK 8 variant
|
static int |
hashCode(double dbl)
Deprecated.
as of Spring Framework 5.0, in favor of the native JDK 8 variant
|
static int |
hashCode(float flt)
Deprecated.
as of Spring Framework 5.0, in favor of the native JDK 8 variant
|
static int |
hashCode(long lng)
Deprecated.
as of Spring Framework 5.0, in favor of the native JDK 8 variant
|
static String |
identityToString(Object obj)
Return a String representation of an object's overall identity.
|
static boolean |
isArray(Object obj)
Determine whether the given object is an array:
either an Object array or a primitive array.
|
static boolean |
isCheckedException(Throwable ex)
Return whether the given throwable is a checked exception:
that is, neither a RuntimeException nor an Error.
|
static boolean |
isCompatibleWithThrowsClause(Throwable ex,
Class<?>... declaredExceptions)
Check whether the given exception is compatible with the specified
exception types, as declared in a throws clause.
|
static boolean |
isEmpty(Object obj)
Determine whether the given object is empty.
|
static boolean |
isEmpty(Object[] array)
Determine whether the given array is empty:
i.e.
|
static String |
nullSafeClassName(Object obj)
Determine the class name for the given object.
|
static String |
nullSafeConciseToString(Object obj)
Generate a null-safe, concise string representation of the supplied object
as described below.
|
static boolean |
nullSafeEquals(Object o1,
Object o2)
Determine if the given objects are equal, returning
true if
both are null or false if only one is null . |
static int |
nullSafeHashCode(boolean[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(byte[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(char[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(double[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(float[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(int[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(long[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(Object obj)
Return as hash code for the given object; typically the value of
Object#hashCode() }. |
static int |
nullSafeHashCode(Object[] array)
Return a hash code based on the contents of the specified array.
|
static int |
nullSafeHashCode(short[] array)
Return a hash code based on the contents of the specified array.
|
static String |
nullSafeToString(boolean[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(byte[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(char[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(double[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(float[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(int[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(long[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(Object obj)
Return a String representation of the specified Object.
|
static String |
nullSafeToString(Object[] array)
Return a String representation of the contents of the specified array.
|
static String |
nullSafeToString(short[] array)
Return a String representation of the contents of the specified array.
|
static Object[] |
toObjectArray(Object source)
Convert the given array (which may be a primitive array) to an
object array (if necessary of primitive wrapper objects).
|
static Object |
unwrapOptional(Object obj)
Unwrap the given object which is potentially a
Optional . |
public static boolean isCheckedException(Throwable ex)
ex
- the throwable to checkException
,
RuntimeException
,
Error
public static boolean isCompatibleWithThrowsClause(Throwable ex, @Nullable Class<?>... declaredExceptions)
ex
- the exception to checkdeclaredExceptions
- the exception types declared in the throws clausepublic static boolean isArray(@Nullable Object obj)
obj
- the object to checkpublic static boolean isEmpty(@Nullable Object[] array)
null
or of zero length.array
- the array to checkisEmpty(Object)
public static boolean isEmpty(@Nullable Object obj)
This method supports the following object types.
Optional
: considered empty if not Optional.isPresent()
Array
: considered empty if its length is zeroCharSequence
: considered empty if its length is zeroCollection
: delegates to Collection.isEmpty()
Map
: delegates to Map.isEmpty()
If the given object is non-null and not one of the aforementioned
supported types, this method returns false
.
obj
- the object to checktrue
if the object is null
or emptyOptional.isPresent()
,
isEmpty(Object[])
,
StringUtils.hasLength(CharSequence)
,
CollectionUtils.isEmpty(java.util.Collection)
,
CollectionUtils.isEmpty(java.util.Map)
@Nullable public static Object unwrapOptional(@Nullable Object obj)
Optional
.obj
- the candidate objectOptional
, null
if the Optional
is empty, or simply the given object as-ispublic static boolean containsElement(@Nullable Object[] array, Object element)
array
- the array to check (may be null
,
in which case the return value will always be false
)element
- the element to check forpublic static boolean containsConstant(Enum<?>[] enumValues, String constant)
enumValues
- the enum values to check, typically obtained via MyEnum.values()
constant
- the constant name to find (must not be null or empty string)public static boolean containsConstant(Enum<?>[] enumValues, String constant, boolean caseSensitive)
enumValues
- the enum values to check, typically obtained via MyEnum.values()
constant
- the constant name to find (must not be null or empty string)caseSensitive
- whether case is significant in determining a matchpublic static <E extends Enum<?>> E caseInsensitiveValueOf(E[] enumValues, String constant)
Enum.valueOf(Class, String)
.E
- the concrete Enum typeenumValues
- the array of all Enum constants in question, usually per Enum.values()
constant
- the constant to get the enum value ofIllegalArgumentException
- if the given constant is not found in the given array
of enum values. Use containsConstant(Enum[], String)
as a guard to avoid this exception.public static <A,O extends A> A[] addObjectToArray(@Nullable A[] array, @Nullable O obj)
array
- the array to append to (can be null
)obj
- the object to appendnull
)public static Object[] toObjectArray(@Nullable Object source)
A null
source value will be converted to an
empty Object array.
source
- the (potentially primitive) arraynull
)IllegalArgumentException
- if the parameter is not an arraypublic static boolean nullSafeEquals(@Nullable Object o1, @Nullable Object o2)
true
if
both are null
or false
if only one is null
.
Compares arrays with Arrays.equals
, performing an equality
check based on the array elements rather than the array reference.
o1
- first Object to compareo2
- second Object to compareObject.equals(Object)
,
Arrays.equals(long[], long[])
public static int nullSafeHashCode(@Nullable Object obj)
Object#hashCode()
}. If the object is an array,
this method will delegate to any of the nullSafeHashCode
methods for arrays in this class. If the object is null
,
this method returns 0.public static int nullSafeHashCode(@Nullable Object[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable boolean[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable byte[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable char[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable double[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable float[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable int[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable long[] array)
array
is null
, this method returns 0.public static int nullSafeHashCode(@Nullable short[] array)
array
is null
, this method returns 0.@Deprecated public static int hashCode(boolean bool)
Boolean.hashCode(boolean)
}.@Deprecated public static int hashCode(double dbl)
Double.hashCode(double)
}.@Deprecated public static int hashCode(float flt)
Float.hashCode(float)
}.@Deprecated public static int hashCode(long lng)
Long.hashCode(long)
}.public static String identityToString(@Nullable Object obj)
obj
- the object (may be null
)null
public static String getIdentityHexString(Object obj)
obj
- the objectpublic static String getDisplayString(@Nullable Object obj)
obj
is
not null
; otherwise returns an empty String.
Differs from nullSafeToString(Object)
in that it returns
an empty String rather than "null" for a null
value.
obj
- the object to build a display String forobj
nullSafeToString(Object)
public static String nullSafeClassName(@Nullable Object obj)
Returns a "null"
String if obj
is null
.
obj
- the object to introspect (may be null
)public static String nullSafeToString(@Nullable Object obj)
Builds a String representation of the contents in case of an array.
Returns a "null"
String if obj
is null
.
obj
- the object to build a String representation forobj
nullSafeConciseToString(Object)
public static String nullSafeToString(@Nullable Object[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable boolean[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable byte[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable char[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable double[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable float[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable int[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable long[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeToString(@Nullable short[] array)
The String representation consists of a list of the array's elements,
enclosed in curly braces ("{}"
). Adjacent elements are separated
by the characters ", "
(a comma followed by a space).
Returns a "null"
String if array
is null
.
array
- the array to build a String representation forarray
public static String nullSafeConciseToString(@Nullable Object obj)
Favor this method over nullSafeToString(Object)
when you need
the length of the generated string to be limited.
Returns:
"null"
if obj
is null
obj
is an empty Optional
obj
is a non-empty Optional
,
where <concise-string>
is the result of invoking nullSafeConciseToString(java.lang.Object)
on the object contained in the Optional
"{}"
if obj
is an empty array or Map
"{...}"
if obj
is a non-empty array or Map
"[]"
if obj
is an empty Collection
"[...]"
if obj
is a non-empty Collection
obj
is a Class
obj
is a Charset
obj
is a TimeZone
obj
is a ZoneId
obj
is a String
or CharSequence
obj
is a simple value type whose toString()
method
returns a non-null value"@"
and a hex string form of the object's identity hash codeIn the context of this method, a simple value type is any of the following:
primitive wrapper (excluding Void
), Enum
, Number
,
Date
, Temporal
, File
, Path
, URI
,
URL
, InetAddress
, Currency
, Locale
,
UUID
, Pattern
.
obj
- the object to build a string representation fornullSafeToString(Object)
,
StringUtils.truncate(CharSequence)