java - 检查对象的空白变量

标签 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 来检查更好的方法?

最佳答案

是的,您可以使用 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;
}

关于java - 检查对象的空白变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415771/

相关文章:

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 如何为我的桌面 Java 应用程序创建 "automatic updater"?

java - OpenCV java获取像素颜色

java - 创建名称为 'mainController' 的 bean 时出错 : Unsatisfied dependency expressed through field 'userrep' ; nested exception is

java - 减少图表代码

java - 如何从字符串中提取带有单词的行(java_android)

objective-c - 井号/井号 (#) 在格式字符串中代表什么?

php - 将逗号分隔的字符串拆分为数组?

javascript - 返回不带引号的 HTML 字符串

android - 在 Text View android 中设置 Span 样式的 HTML 文本