public abstract class ObjectUtils
extends java.lang.Object
Mainly for internal use within the framework.
Thanks to Alex Ruiz for contributing several enhancements to this class!
ClassUtils
,
CollectionUtils
,
StringUtils
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ARRAY_ELEMENT_SEPARATOR |
private static java.lang.String |
ARRAY_END |
private static java.lang.String |
ARRAY_START |
private static java.lang.String |
EMPTY_ARRAY |
private static java.lang.String |
EMPTY_STRING |
private static int |
INITIAL_HASH |
private static int |
MULTIPLIER |
private static java.lang.String |
NULL_STRING |
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.
|
private static boolean |
arrayEquals(java.lang.Object o1,
java.lang.Object o2)
Compare the given arrays with
Arrays.equals , performing an equality
check based on the array elements rather than the array reference. |
static <E extends java.lang.Enum<?>> |
caseInsensitiveValueOf(E[] enumValues,
java.lang.String constant)
Case insensitive alternative to
Enum.valueOf(Class, String) . |
static boolean |
containsConstant(java.lang.Enum<?>[] enumValues,
java.lang.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(java.lang.Enum<?>[] enumValues,
java.lang.String constant,
boolean caseSensitive)
Check whether the given array of enum constants contains a constant with the given name.
|
static boolean |
containsElement(java.lang.Object[] array,
java.lang.Object element)
Check whether the given array contains the given element.
|
static java.lang.String |
getDisplayString(java.lang.Object obj)
Return a content-based String representation if
obj is
not null ; otherwise returns an empty String. |
static java.lang.String |
getIdentityHexString(java.lang.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 java.lang.String |
identityToString(java.lang.Object obj)
Return a String representation of an object's overall identity.
|
static boolean |
isArray(java.lang.Object obj)
Determine whether the given object is an array:
either an Object array or a primitive array.
|
static boolean |
isCheckedException(java.lang.Throwable ex)
Return whether the given throwable is a checked exception:
that is, neither a RuntimeException nor an Error.
|
static boolean |
isCompatibleWithThrowsClause(java.lang.Throwable ex,
java.lang.Class<?>... declaredExceptions)
Check whether the given exception is compatible with the specified
exception types, as declared in a throws clause.
|
static boolean |
isEmpty(java.lang.Object obj)
Determine whether the given object is empty.
|
static boolean |
isEmpty(java.lang.Object[] array)
Determine whether the given array is empty:
i.e.
|
static java.lang.String |
nullSafeClassName(java.lang.Object obj)
Determine the class name for the given object.
|
static boolean |
nullSafeEquals(java.lang.Object o1,
java.lang.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(java.lang.Object obj)
Return as hash code for the given object; typically the value of
Object#hashCode() }. |
static int |
nullSafeHashCode(java.lang.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 java.lang.String |
nullSafeToString(boolean[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(byte[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(char[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(double[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(float[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(int[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(long[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(java.lang.Object obj)
Return a String representation of the specified Object.
|
static java.lang.String |
nullSafeToString(java.lang.Object[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.String |
nullSafeToString(short[] array)
Return a String representation of the contents of the specified array.
|
static java.lang.Object[] |
toObjectArray(java.lang.Object source)
Convert the given array (which may be a primitive array) to an
object array (if necessary of primitive wrapper objects).
|
static java.lang.Object |
unwrapOptional(java.lang.Object obj)
Unwrap the given object which is potentially a
Optional . |
private static final int INITIAL_HASH
private static final int MULTIPLIER
private static final java.lang.String EMPTY_STRING
private static final java.lang.String NULL_STRING
private static final java.lang.String ARRAY_START
private static final java.lang.String ARRAY_END
private static final java.lang.String EMPTY_ARRAY
private static final java.lang.String ARRAY_ELEMENT_SEPARATOR
public static boolean isCheckedException(java.lang.Throwable ex)
ex
- the throwable to checkException
,
RuntimeException
,
Error
public static boolean isCompatibleWithThrowsClause(java.lang.Throwable ex, @Nullable java.lang.Class<?>... declaredExceptions)
ex
- the exception to checkdeclaredExceptions
- the exception types declared in the throws clausepublic static boolean isArray(@Nullable java.lang.Object obj)
obj
- the object to checkpublic static boolean isEmpty(@Nullable java.lang.Object[] array)
null
or of zero length.array
- the array to checkisEmpty(Object)
public static boolean isEmpty(@Nullable java.lang.Object obj)
This method supports the following object types.
Optional
: considered empty if Optional.empty()
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)
,
StringUtils.isEmpty(Object)
,
CollectionUtils.isEmpty(java.util.Collection)
,
CollectionUtils.isEmpty(java.util.Map)
@Nullable public static java.lang.Object unwrapOptional(@Nullable java.lang.Object obj)
Optional
.obj
- the candidate objectOptional
, null
if the Optional
is empty, or simply the given object as-ispublic static boolean containsElement(@Nullable java.lang.Object[] array, java.lang.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(java.lang.Enum<?>[] enumValues, java.lang.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(java.lang.Enum<?>[] enumValues, java.lang.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 java.lang.Enum<?>> E caseInsensitiveValueOf(E[] enumValues, java.lang.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 ofjava.lang.IllegalArgumentException
- 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 java.lang.Object[] toObjectArray(@Nullable java.lang.Object source)
A null
source value will be converted to an
empty Object array.
source
- the (potentially primitive) arraynull
)java.lang.IllegalArgumentException
- if the parameter is not an arraypublic static boolean nullSafeEquals(@Nullable java.lang.Object o1, @Nullable java.lang.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[])
private static boolean arrayEquals(java.lang.Object o1, java.lang.Object o2)
Arrays.equals
, performing an equality
check based on the array elements rather than the array reference.o1
- first array to compareo2
- second array to comparenullSafeEquals(Object, Object)
,
Arrays.equals(long[], long[])
public static int nullSafeHashCode(@Nullable java.lang.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 java.lang.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 java.lang.String identityToString(@Nullable java.lang.Object obj)
obj
- the object (may be null
)null
public static java.lang.String getIdentityHexString(java.lang.Object obj)
obj
- the objectpublic static java.lang.String getDisplayString(@Nullable java.lang.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 java.lang.String nullSafeClassName(@Nullable java.lang.Object obj)
Returns a "null"
String if obj
is null
.
obj
- the object to introspect (may be null
)public static java.lang.String nullSafeToString(@Nullable java.lang.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
public static java.lang.String nullSafeToString(@Nullable java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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 java.lang.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