检查对象的空白变量

时间:2012-05-02 14:26:43

标签: java string

我有一个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进行检查?

1 个答案:

答案 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;
}