I have a Java primitive type at hand:
Class<?> c = int.class; // or long.class, or boolean.class
I'd like to get a default value for this class -- specifically, the value is assigned to fields of this type if they are not initialized. E.g., 0
for a number, false
for a boolean.
Is there a generic way to do this? I tried this:
c.newInstance()
But I'm getting an InstantiationException
, and not a default instance.
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