我手头有一个Java基本类型:
Class<?> c = int.class; // or long.class, or boolean.class
我想获得此类的默认值-具体来说,如果未初始化,则将值分配给此类型的字段。例如,
0
表示数字,false
表示 boolean 值。有通用的方法可以做到这一点吗?我尝试了这个:
c.newInstance()
但是我得到了
InstantiationException
,而不是默认实例。 最佳答案
Guava 图书馆已经包含:
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Defaults.html
调用defaultValue
将为任何原始类型(由JLS指定)返回默认值,对于任何其他类型返回null。
像这样使用它:
import com.google.common.base.Defaults;
Defaults.defaultValue(Integer.TYPE); //will return 0