我有一个包含一些字段的对象,我想检查一些字段是否不为空且不为空。在 Java 8 或 Apache 实用程序中是否有一种好的方法...
我不想做类似的事情
if(myObj.getMyField1 != null || myObj.getMyField1 != "" || myObj.getMyField2 != null || myObj.getMyField2 != "" || myObj.getMyField3 != null || myObj.getMyField3 != "") {}
这是我的对象
@Data // lombok for generating getters and setters
public class Myobj {
private String myField1;
private String myField2;
private String myField3;
private String myField4;
private String myField5;
private AnotherObj myField6;
}
你有什么建议吗?
最佳答案
您可以使用 java-8 Stream#anyMatch检查字符串是 null
还是空的。例如:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(it-> it==null || it.isEmpty());
或者您可以将 lambda 表达式替换为方法引用表达式,该方法以后可以重用:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(this::isNullOrEmptyString);
boolean isNullOrEmptyString(String it){
return it==null || it.isEmpty();
}
OR 因为我看到你的问题标记为 spring,而 spring 已经有一个实用方法 StringUtils#isEmpty
用于检查 String
是否是 null
或空的:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(StringUtils::isEmpty);
关于java - 测试非空字段的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44137924/