Java 用lambda表达式替换列表迭代逻辑

Java 用lambda表达式替换列表迭代逻辑,java,lambda,java-8,Java,Lambda,Java 8,下面是一段代码,用于遍历列表,检查特定值,然后终止循环。如果可能的话,你能推荐一种更好的使用lambda表达式的方法吗 for(InvoiceLine invoiceLine : inputInvoice.getInvoiceLines()) { Object flag = invoiceLine.getTransientField("ApproveInvoiceLine"); if(flag != null

下面是一段代码,用于遍历列表,检查特定值,然后终止循环。如果可能的话,你能推荐一种更好的使用lambda表达式的方法吗

            for(InvoiceLine invoiceLine : inputInvoice.getInvoiceLines()) {
                Object flag = invoiceLine.getTransientField("ApproveInvoiceLine");
                if(flag != null && ((Boolean)flag)) {
                    approveInv = true;
                    break;
                }
            }

我通常更喜欢将这种
if
写成
Boolean.TRUE.equals(flag)
boolean approveInv = inputInvoice.getInvoiceLines()
                           .stream()
                           .map(x -> x.getTransientField("ApproveInvoiceLine"))
                           .anyMatch(x -> x != null && ((Boolean)x));
 boolean approveInv = inputInvoice.getInvoiceLines().stream()
             .filter(i -> invoiceLine.getTransientField("ApproveInvoiceLine")!=null)
             .filter(i -> ((Boolean)invoiceLine.getTransientField("ApproveInvoiceLine"))==true)
             .findFirst()
             .isPresent();