Java如何使用反射检查字段是否已初始化或为默认值?
所以,应该是直截了当的问题。
可以说我有一堂课,其中包含很多字段,例如:
String thizz;long that;
boolean bar;
我怎样才能与反思,看是否领域thizz
,that
并bar
已初始化或离开NULL,0和虚假的默认值吗?
回答:
您只有7种基本类型和一种引用类型要检查。如果将所有Number类型分组在一起,则只有四个要检查的值。
Object o =for (Field field : o.getClass().getDeclaredFields()) {
Class t = field.getType();
Object v = field.get(o);
if(t == boolean.class && Boolean.FALSE.equals(v))
// found default value
else if(t == char.class && ((Character) v).charValue() == 0)
// found default value
else if(t.isPrimitive() && ((Number) v).doubleValue() == 0)
// found default value
else if(v == null)
// found default value
}
以上是 Java如何使用反射检查字段是否已初始化或为默认值? 的全部内容, 来源链接: utcz.com/qa/418377.html