@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2013 the original author or authors .
* Copyright 2002 - 2015 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -18,10 +18,13 @@ package org.springframework.util;
import java.lang.reflect.Array ;
import java.util.Arrays ;
import java.util.Collection ;
import java.util.Map ;
/ * *
* Miscellaneous object utility methods .
* Mainly for internal use within the framework .
*
* < p > Mainly for internal use within the framework .
*
* < p > Thanks to Alex Ruiz for contributing several enhancements to this class !
*
@ -30,7 +33,11 @@ import java.util.Arrays;
* @author Rod Johnson
* @author Rob Harrop
* @author Chris Beams
* @author Sam Brannen
* @since 19 . 03 . 2004
* @see ClassUtils
* @see CollectionUtils
* @see StringUtils
* /
public abstract class ObjectUtils {
@ -92,11 +99,55 @@ public abstract class ObjectUtils {
* Determine whether the given array is empty :
* i . e . { @code null } or of zero length .
* @param array the array to check
* @see # isEmpty ( Object )
* /
public static boolean isEmpty ( Object [ ] array ) {
return ( array = = null | | array . length = = 0 ) ;
}
/ * *
* Determine whether the given object is empty .
* < p > This method supports the following object types .
* < ul >
* < li > { @code Array } : considered empty if its length is zero < / li >
* < li > { @link CharSequence } : considered empty if its length is zero < / li >
* < li > { @link Collection } : delegates to { @link Collection # isEmpty ( ) } < / li >
* < li > { @link Map } : delegates to { @link Map # isEmpty ( ) } < / li >
* < / ul >
* < p > If the given object is non - null and not one of the aforementioned
* supported types , this method returns { @code false } .
* @param obj the object to check
* @return { @code true } if the object is { @code null } or < em > empty < / em >
* @since 4 . 2
* @see ObjectUtils # isEmpty ( Object [ ] )
* @see StringUtils # hasLength ( CharSequence )
* @see StringUtils # isEmpty ( Object )
* @see CollectionUtils # isEmpty ( java . util . Collection )
* @see CollectionUtils # isEmpty ( java . util . Map )
* /
@SuppressWarnings ( "rawtypes" )
public static boolean isEmpty ( Object obj ) {
if ( obj = = null ) {
return true ;
}
if ( obj . getClass ( ) . isArray ( ) ) {
return Array . getLength ( obj ) = = 0 ;
}
if ( obj instanceof CharSequence ) {
return ( ( CharSequence ) obj ) . length ( ) = = 0 ;
}
if ( obj instanceof Collection ) {
return ( ( Collection ) obj ) . isEmpty ( ) ;
}
if ( obj instanceof Map ) {
return ( ( Map ) obj ) . isEmpty ( ) ;
}
// else
return false ;
}
/ * *
* Check whether the given array contains the given element .
* @param array the array to check ( may be { @code null } ,