我有一个pojo类
class Foo{
String a
String b
.
.
// nearly 250 data members
// all have getters and setter
}
现在我创建了类的对象 如何检查对象中的任何数据成员是否为空
我正在使用以下方法
public boolean clearBlank()
{
if(StringUtils.isBlank(this.getA()))
return true;
if(StringUtils.isBlank(this.getB()))
return true;
if(StringUtils.isBlank(this.getC()))
return true;
.
.
.
// similarly for all 250 data member
return false;
}
有没有更好的方法通过调用所有250个对象的getter进行检查?
答案 0 :(得分:7)
是的,您可以使用Java Reflection遍历对象的所有字段并获取它们的值来进行比较。
像这样:
public static boolean hasBlankVariables(Object obj) throws IllegalArgumentException, IllegalAccessException {
for (Field field : obj.getClass().getDeclaredFields()) {
if (!field.isAccessible()) {
field.setAccessible(true);
}
// Danger!
String str = (String) field.get(obj);
if (StringUtils.isBlank(str)) {
return true;
}
}
return false;
}