Vic*_*tor 1 java spring java-8 spring-boot
我有一个包含一些字段的对象,我想检查一些字段是否为空且不为空.有没有一种很好的方法在java 8或apache实用程序中这样做...
我不想做类似的事情
if(myObj.getMyField1 != null || myObj.getMyField1 != "" || myObj.getMyField2 != null || myObj.getMyField2 != "" || myObj.getMyField3 != null || myObj.getMyField3 != "") {}
Run Code Online (Sandbox Code Playgroud)
这是myObj
@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;
}
Run Code Online (Sandbox Code Playgroud)
你有什么建议吗?
您可以使用java-8 Stream#anyMatch来检查字符串是否为null空.例如:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(it-> it==null || it.isEmpty());
Run Code Online (Sandbox Code Playgroud)
或者你可以用方法引用表达式替换lambda表达式,该方法可以在以后重用:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(this::isNullOrEmptyString);
boolean isNullOrEmptyString(String it){
return it==null || it.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)
或者当我看到你标记为spring的问题时,spring已经有一个实用程序方法StringUtils#isEmpty来检查String是否为null空:
boolean hasNullOrEmptyString = Stream.of(myField1,myField2,...,myFieldN)
.anyMatch(StringUtils::isEmpty);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2178 次 |
| 最近记录: |