我将 A 类定义为
class A {
Set<String> attribute1;
Set<String> attribute2;
.
.
.
}
我想创建一个方法来检查所有属性是否为空。除了非常长的 if 条件之外,您是否有任何建议如何巧妙地完成此操作?
我尝试创建一个非常长的 if 条件,但我想要更干净的东西。
if (attribute1.isEmpty() && attribute2.isEmpty() ....)
您可以使用以下两种方法进行检查:
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);
}