[英]Issue with optional usage (java 8)
我正在尝试将流与下面的代码一起使用。 我的问题是我的返回值。 这段代码返回Optional而不是布尔值:
ogps.stream().filter(elt -> (elt.getLineNumbers() != null && !vg.getLineNumbers().isEmpty())).findFirst();
你能指导我吗? 谢谢
//The original code
public static boolean isOrderOk(List<OrderGroup> ogps) {
if (ogps == null || ogps.isEmpty()) {
return true;
}
for (OrderGroup elt : ogps) {
if (elt.getLineNumbers() != null && !vg.getLineNumbers().isEmpty()) {
return false;
}
}
return true;
}
//The new code with stream usage
public static boolean isOrderOk(List<OrderGroup> ogps) {
if (ogps == null || ogps.isEmpty()) {
return true;
}
return ogps.stream()
.filter(elt -> (elt.getLineNumbers() != null && !vg.getLineNumbers().isEmpty()))
.findFirst();
return true;
}
您可能正在寻找类似的东西:
public static boolean isOrderOk(List<OrderGroup> ogps) {
if (ogps == null || ogps.isEmpty()) {
return true;
}
return ! ogps.stream()
.anyMatch(elt -> (elt.getLineNumbers() != null && !vg.getLineNumbers().isEmpty()));
}
原因是您使用的是stream
类的findFirst
方法,它返回Optional
类型,如此处所示 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.