我有下面的一段代碼來遍歷一個列表,檢查一個特定的值,然后終止循環。如果可能,您能否建議使用 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
提交
取消