Getting default value for primitive types
It's possible to get the default value of any type by creating an array of one element and retrieving its first value.
private static <T> T getDefaultValue(Class<T> clazz) {
return (T) Array.get(Array.newInstance(clazz, 1), 0);
}
This way there is not need to take account for every possible primitive type, at the usually negligible cost of creating a one-element array.
The Guava Libraries already contains that:
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Defaults.html
Calling defaultValue
will return the default value for any primitive type (as specified by the JLS), and null for any other type.
Use it like so:
import com.google.common.base.Defaults;
Defaults.defaultValue(Integer.TYPE); //will return 0