猿问

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

我有下面的一段代码来遍历一个列表,检查一个特定的值,然后终止循环。如果可能,您能否建议使用 lambda 表达式的更好方法?


            for(InvoiceLine invoiceLine : inputInvoice.getInvoiceLines()) {

                Object flag = invoiceLine.getTransientField("ApproveInvoiceLine");

                if(flag != null && ((Boolean)flag)) {

                    approveInv = true;

                    break;

                }

            }


繁花不似锦
浏览 103回答 2
2回答

隔江千里

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();
随时随地看视频慕课网APP

相关分类

Java
我要回答