我正在尝试使用以下代码的流。我的问题是我的回报价值。 这段代码返回一个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;
}
答案 0 :(得分:1)
你可能正在寻找类似的东西:
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()));
}
答案 1 :(得分:0)
原因是您正在使用findFirst
类的stream
方法,并返回Optional
类型,因为您可以看到here。