【Java】:获取类中指定类型的所有属性

问题描述 投票:0回答:1

我将 A 类定义为

class A {
  Set<String> attribute1;
  Set<String> attribute2;
  .
  .
  .
}

我想创建一个方法来检查所有属性是否为空。除了非常长的 if 条件之外,您是否有任何建议如何巧妙地完成此操作?

我尝试创建一个非常长的 if 条件,但我想要更干净的东西。

if (attribute1.isEmpty() && attribute2.isEmpty() ....)

java reflection set
1个回答
0
投票

您可以使用以下两种方法进行检查:

1)使用java反射:

您可以在类中创建一个方法,如下所示,并检查所有属性是否为空。

public boolean checkAllAttributesNullOrNot() throws IllegalAccessException {
        boolean allNull = true;
        for (Field f : getClass().getDeclaredFields())
            if (f.get(this) != null) {
                allNull = false;
                break;
            }
        return allNull;
    }

2)使用java 8流API:

您可以尝试使用流API来检查类的所有属性是否为空,如下所示:

public boolean checkAllAttributesNullOrNot() {
        return Stream.of(attribute1, attribute2, attribute3)
                     .allMatch(Objects::isNull);
    }
© www.soinside.com 2019 - 2024. All rights reserved.