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








