1

我有一个 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 来检查是否有更好的方法?

4

1 回答 1

7

是的,您可以使用 Java 反射来遍历对象的所有字段并获取它们的值来进行比较。

像这样:

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;
}
于 2012-05-02T14:27:51.670 回答