Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright SpringSource Inc 2007,2009.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package com.springsource.util.common;
 
Miscellaneous object utility methods.

Author(s):
Juergen Hoeller
Keith Donald
Rod Johnson
Rob Harrop
Alex Ruiz
 
 public abstract class ObjectUtils {
 
 	private static final int INITIAL_HASH = 7;
 	private static final int MULTIPLIER = 31;
 
 	private static final String EMPTY_STRING = "";
 	private static final String NULL_STRING = "null";
 	private static final String ARRAY_START = "{";
 	private static final String ARRAY_END = "}";
 	private static final String EMPTY_ARRAY =  + ;
 	private static final String ARRAY_ELEMENT_SEPARATOR = ", ";


Return whether the given throwable is a checked exception: that is, neither a RuntimeException nor an Error.

Parameters:
ex the throwable to check
Returns:
whether the throwable is a checked exception
See also:
java.lang.Exception
java.lang.RuntimeException
java.lang.Error
 
 	public static boolean isCheckedException(Throwable ex) {
 		return !(ex instanceof RuntimeException || ex instanceof Error);
 	}

Check whether the given exception is compatible with the exceptions declared in a throws clause.

Parameters:
ex the exception to checked
declaredExceptions the exceptions declared in the throws clause
Returns:
whether the given exception is compatible
 
 	public static boolean isCompatibleWithThrowsClause(Throwable exClass<? extends Throwable>[] declaredExceptions) {
 		if (!isCheckedException(ex)) {
 			return true;
 		}
 		if (declaredExceptions != null) {
 			for (int i = 0; i < declaredExceptions.lengthi++) {
 				if (declaredExceptions[i].isAssignableFrom(ex.getClass())) {
 					return true;
 				}
 			}
 		}
 		return false;
 	}

Return whether the given array is empty: that is, null or of zero length.

Parameters:
array the array to check
Returns:
whether the given array is empty
 
 	public static boolean isEmpty(Object[] array) {
 		return (array == null || array.length == 0);
 	}

Check whether the given array contains the given element.

Parameters:
array the array to check (may be null, in which case the return value will always be false)
element the element to check for
Returns:
whether the element has been found in the given array
 
 	public static boolean containsElement(Object[] arrayObject element) {
 		if (array == null) {
 			return false;
 		}
 		for (int i = 0; i < array.lengthi++) {
			if (nullSafeEquals(array[i], element)) {
				return true;
			}
		}
		return false;
	}

Append the given Object to the given array, returning a new array consisting of the input array contents plus the given Object.

Parameters:
array the array to append to (can be null)
obj the Object to append
Returns:
the new array (of the same component type; never null)
	public static Object[] addObjectToArray(Object[] arrayObject obj) {
		Class<?> compType = Object.class;
		if (array != null) {
			compType = array.getClass().getComponentType();
		}
		else if (obj != null) {
			compType = obj.getClass();
		}
		int newArrLength = (array != null ? array.length + 1 : 1);
		Object[] newArr = (Object[]) Array.newInstance(compTypenewArrLength);
		if (array != null) {
			System.arraycopy(array, 0, newArr, 0, array.length);
		}
		newArr[newArr.length - 1] = obj;
		return newArr;
	}

Convert the given array (which may be a primitive array) to an object array (if necessary of primitive wrapper objects).

A null source value will be converted to an empty Object array.

Parameters:
source the (potentially primitive) array
Returns:
the corresponding object array (never null)
Throws:
java.lang.IllegalArgumentException if the parameter is not an array
	public static Object[] toObjectArray(Object source) {
		if (source instanceof Object[]) {
			return (Object[]) source;
		}
		if (source == null) {
			return new Object[0];
		}
		if (!source.getClass().isArray()) {
			throw new IllegalArgumentException("Source is not an array: " + source);
		}
		int length = Array.getLength(source);
		if (length == 0) {
			return new Object[0];
		}
		Class<?> wrapperType = Array.get(source, 0).getClass();
		Object[] newArray = (Object[]) Array.newInstance(wrapperTypelength);
		for (int i = 0; i < lengthi++) {
			newArray[i] = Array.get(sourcei);
		}
		return newArray;
	}
	//---------------------------------------------------------------------
	// Convenience methods for content-based equality/hash-code handling
	//---------------------------------------------------------------------
Determine if the given objects are equal, returning 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.

Parameters:
o1 first Object to compare
o2 second Object to compare
Returns:
whether the given objects are equal
See also:
java.lang.Object.equals(java.lang.Object)
	public static boolean nullSafeEquals(Object o1Object o2) {
		if (o1 == o2) {
			return true;
		}
		if (o1 == null || o2 == null) {
			return false;
		}
		if (o1.equals(o2)) {
			return true;
		}
		if (o1.getClass().isArray() && o2.getClass().isArray()) {
			if (o1 instanceof Object[] && o2 instanceof Object[]) {
				return Arrays.equals((Object[]) o1, (Object[]) o2);
			}
			if (o1 instanceof boolean[] && o2 instanceof boolean[]) {
				return Arrays.equals((boolean[]) o1, (boolean[]) o2);
			}
			if (o1 instanceof byte[] && o2 instanceof byte[]) {
				return Arrays.equals((byte[]) o1, (byte[]) o2);
			}
			if (o1 instanceof char[] && o2 instanceof char[]) {
				return Arrays.equals((char[]) o1, (char[]) o2);
			}
			if (o1 instanceof double[] && o2 instanceof double[]) {
				return Arrays.equals((double[]) o1, (double[]) o2);
			}
			if (o1 instanceof float[] && o2 instanceof float[]) {
				return Arrays.equals((float[]) o1, (float[]) o2);
			}
			if (o1 instanceof int[] && o2 instanceof int[]) {
				return Arrays.equals((int[]) o1, (int[]) o2);
			}
			if (o1 instanceof long[] && o2 instanceof long[]) {
				return Arrays.equals((long[]) o1, (long[]) o2);
			}
			if (o1 instanceof short[] && o2 instanceof short[]) {
				return Arrays.equals((short[]) o1, (short[]) o2);
			}
		}
		return false;
	}

Return as hash code for the given object; typically the value of java.lang.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(Object obj) {
		if (obj == null) {
			return 0;
		}
		if (obj.getClass().isArray()) {
			if (obj instanceof Object[]) {
				return nullSafeHashCode((Object[]) obj);
			}
			if (obj instanceof boolean[]) {
				return nullSafeHashCode((boolean[]) obj);
			}
			if (obj instanceof byte[]) {
				return nullSafeHashCode((byte[]) obj);
			}
			if (obj instanceof char[]) {
				return nullSafeHashCode((char[]) obj);
			}
			if (obj instanceof double[]) {
				return nullSafeHashCode((double[]) obj);
			}
			if (obj instanceof float[]) {
				return nullSafeHashCode((float[]) obj);
			}
			if (obj instanceof int[]) {
				return nullSafeHashCode((int[]) obj);
			}
			if (obj instanceof long[]) {
				return nullSafeHashCode((long[]) obj);
			}
			if (obj instanceof short[]) {
				return nullSafeHashCode((short[]) obj);
			}
		}
		return obj.hashCode();
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of objects
Returns:
hash code
	public static int nullSafeHashCode(Object[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + nullSafeHashCode(array[i]);
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of booleans
Returns:
hash code
	public static int nullSafeHashCode(boolean[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + hashCode(array[i]);
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of bytes
Returns:
hash code
	public static int nullSafeHashCode(byte[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + array[i];
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of chars
Returns:
hash code
	public static int nullSafeHashCode(char[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + array[i];
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of doubles
Returns:
hash code
	public static int nullSafeHashCode(double[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + hashCode(array[i]);
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of floats
Returns:
hash code
	public static int nullSafeHashCode(float[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + hashCode(array[i]);
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of ints
Returns:
hash code
	public static int nullSafeHashCode(int[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + array[i];
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of longs
Returns:
hash codes
	public static int nullSafeHashCode(long[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + hashCode(array[i]);
		}
		return hash;
	}

Return a hash code based on the contents of the specified array. If array is null, this method returns 0.

Parameters:
array of shorts
Returns:
hash code
	public static int nullSafeHashCode(short[] array) {
		if (array == null) {
			return 0;
		}
		int hash = ;
		int arraySize = array.length;
		for (int i = 0; i < arraySizei++) {
			hash =  * hash + array[i];
		}
		return hash;
	}

Return the same value as java.lang.Boolean.hashCode().

Parameters:
bool boolean
Returns:
hash code
See also:
java.lang.Boolean.hashCode()
	public static int hashCode(boolean bool) {
		return bool ? 1231 : 1237;
	}

Return the same value as java.lang.Double.hashCode().

Parameters:
dbl double
Returns:
hash code
See also:
java.lang.Double.hashCode()
	public static int hashCode(double dbl) {
		long bits = Double.doubleToLongBits(dbl);
		return hashCode(bits);
	}

Return the same value as java.lang.Float.hashCode().

Parameters:
flt float
Returns:
hash code
See also:
java.lang.Float.hashCode()
	public static int hashCode(float flt) {
		return Float.floatToIntBits(flt);
	}

Return the same value as java.lang.Long.hashCode().

Parameters:
lng long
Returns:
hash code
See also:
java.lang.Long.hashCode()
	public static int hashCode(long lng) {
		return (int) (lng ^ (lng >>> 32));
	}
	//---------------------------------------------------------------------
	// Convenience methods for toString output
	//---------------------------------------------------------------------
Return a String representation of an object's overall identity.

Parameters:
obj the object (may be null)
Returns:
the object's identity as String representation, or an empty String if the object was null
	public static String identityToString(Object obj) {
		if (obj == null) {
			return ;
		}
		return obj.getClass().getName() + "@" + getIdentityHexString(obj);
	}

Return a hex String form of an object's identity hash code.

Parameters:
obj the object
Returns:
the object's identity code in hex notation
	public static String getIdentityHexString(Object obj) {
		return Integer.toHexString(System.identityHashCode(obj));
	}

Return a content-based String representation if obj is not null; otherwise returns an empty String.

Differs from nullSafeToString(java.lang.Object) in that it returns an empty String rather than "null" for a null value.

Parameters:
obj the object to build a display String for
Returns:
a display String representation of obj
See also:
nullSafeToString(java.lang.Object)
	public static String getDisplayString(Object obj) {
		if (obj == null) {
			return ;
		}
		return nullSafeToString(obj);
	}

Determine the class name for the given object.

Returns "null" if obj is null.

Parameters:
obj the object to introspect (may be null)
Returns:
the corresponding class name
	public static String nullSafeClassName(Object obj) {
		return (obj != null ? obj.getClass().getName() : );
	}

Return a String representation of the specified Object.

Builds a String representation of the contents in case of an array. Returns "null" if obj is null.

Parameters:
obj the object to build a String representation for
Returns:
a String representation of obj
	public static String nullSafeToString(Object obj) {
		if (obj == null) {
			return ;
		}
		if (obj instanceof String) {
			return (Stringobj;
		}
		if (obj instanceof Object[]) {
			return nullSafeToString((Object[]) obj);
		}
		if (obj instanceof boolean[]) {
			return nullSafeToString((boolean[]) obj);
		}
		if (obj instanceof byte[]) {
			return nullSafeToString((byte[]) obj);
		}
		if (obj instanceof char[]) {
			return nullSafeToString((char[]) obj);
		}
		if (obj instanceof double[]) {
			return nullSafeToString((double[]) obj);
		}
		if (obj instanceof float[]) {
			return nullSafeToString((float[]) obj);
		}
		if (obj instanceof int[]) {
			return nullSafeToString((int[]) obj);
		}
		if (obj instanceof long[]) {
			return nullSafeToString((long[]) obj);
		}
		if (obj instanceof short[]) {
			return nullSafeToString((short[]) obj);
		}
		String str = obj.toString();
		return (str != null ? str : );
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(Object[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(String.valueOf(array[i]));
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(boolean[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(byte[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(char[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append("'").append(array[i]).append("'");
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(double[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(float[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(int[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(long[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}

Return a String representation of the contents of the specified 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 "null" if array is null.

Parameters:
array the array to build a String representation for
Returns:
a String representation of array
	public static String nullSafeToString(short[] array) {
		if (array == null) {
			return ;
		}
		int length = array.length;
		if (length == 0) {
			return ;
		}
		StringBuffer buffer = new StringBuffer();
		for (int i = 0; i < lengthi++) {
			if (i == 0) {
			}
			else {
			}
			buffer.append(array[i]);
		}
		return buffer.toString();
	}
New to GrepCode? Check out our FAQ X