我有下面的一段代码来遍历一个列表,检查一个特定的值,然后终止循环。如果可能,您能否建议使用 lambda 表达式的更好方法? for(InvoiceLine invoiceLine : inputInvoice.getInvoiceLines()) { Object flag = invoiceLine.getTransientField("ApproveInvoiceLine"); if(flag != null && ((Boolean)flag)) { approveInv = true; break; } }
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
boolean approveInv = inputInvoice.getInvoiceLines()
.stream()
.map(x -> x.getTransientField("ApproveInvoiceLine"))
.anyMatch(x -> x != null && ((Boolean)x));
倚天杖
TA贡献1828条经验 获得超3个赞
boolean approveInv = inputInvoice.getInvoiceLines().stream()
.filter(i -> invoiceLine.getTransientField("ApproveInvoiceLine")!=null)
.filter(i -> ((Boolean)invoiceLine.getTransientField("ApproveInvoiceLine"))==true)
.findFirst()
.isPresent();
添加回答
举报
0/150
提交
取消