Return as hash code for the given object
import java.lang.reflect.Array; import java.util.Arrays; /* * Copyright 2002-2007 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. * 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. *///Revised from springframework /** * Miscellaneous object utility methods. Mainly for internal use within the * framework; consider Jakarta's Commons Lang for a more comprehensive suite * of object utilities. * * @author Juergen Hoeller * @author Keith Donald * @author Rod Johnson * @author Rob Harrop * @author Alex Ruiz * @since 19.03.2004 * @see org.apache.commons.lang.ObjectUtils */abstractclass ObjectUtils { privatestaticfinalint INITIAL_HASH = 7; privatestaticfinalint MULTIPLIER = 31; privatestaticfinal String EMPTY_STRING = ""; privatestaticfinal String NULL_STRING = "null"; privatestaticfinal String ARRAY_START = "{"; privatestaticfinal String ARRAY_END = "}"; privatestaticfinal String EMPTY_ARRAY = ARRAY_START + ARRAY_END; privatestaticfinal String ARRAY_ELEMENT_SEPARATOR = ", "; /** * Return as hash code for the given object; typically the value of * <code>{@link Object#hashCode()}</code>. If the object is an array, * this method will delegate to any of the <code>nullSafeHashCode</code> * methods for arrays in this class. If the object is <code>null</code>, * this method returns 0. * @see #nullSafeHashCode(Object[]) * @see #nullSafeHashCode(boolean[]) * @see #nullSafeHashCode(byte[]) * @see #nullSafeHashCode(char[]) * @see #nullSafeHashCode(double[]) * @see #nullSafeHashCode(float[]) * @see #nullSafeHashCode(int[]) * @see #nullSafeHashCode(long[]) * @see #nullSafeHashCode(short[]) */publicstaticint nullSafeHashCode(Object obj) { if (obj == null) { return 0; } if (obj instanceof Object[]) { return nullSafeHashCode((Object[]) obj); } if (obj instanceofboolean[]) { return nullSafeHashCode((boolean[]) obj); } if (obj instanceofbyte[]) { return nullSafeHashCode((byte[]) obj); } if (obj instanceofchar[]) { return nullSafeHashCode((char[]) obj); } if (obj instanceofdouble[]) { return nullSafeHashCode((double[]) obj); } if (obj instanceoffloat[]) { return nullSafeHashCode((float[]) obj); } if (obj instanceofint[]) { return nullSafeHashCode((int[]) obj); } if (obj instanceoflong[]) { return nullSafeHashCode((long[]) obj); } if (obj instanceofshort[]) { return nullSafeHashCode((short[]) obj); } return obj.hashCode(); } }
Related examples in the same category