我试图在下面的代码中使用流。我的问题是我的返回值。
这段代码返回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()));
}

10-02 23:27