Java如何使用反射检查字段是否已初始化或为默认值?

所以,应该是直截了当的问题。

可以说我有一堂课,其中包含很多字段,例如:

String thizz;

long that;

boolean bar;

我怎样才能与反思,看是否领域thizzthatbar已初始化或离开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

回到顶部