Java 用lambda表达式替换列表迭代逻辑
下面是一段代码,用于遍历列表,检查特定值,然后终止循环。如果可能的话,你能推荐一种更好的使用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
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();