如何在Java8 lambda表达式中求和对象的BigDecimal属性?
让我们举一个简单的现实生活中的例子:
BigDecimal invoiceValue = BigDecimal.ZERO;
for (InvoiceItem i : invoiceItems) {
invoiceValue = invoiceValue.add(i.getItemValue());
}
如何使用Java8 lambda表达式在一个语句中获取它?
让我们举一个简单的现实生活中的例子:
BigDecimal invoiceValue = BigDecimal.ZERO;
for (InvoiceItem i : invoiceItems) {
invoiceValue = invoiceValue.add(i.getItemValue());
}
如何使用Java8 lambda表达式在一个语句中获取它?
invoiceItems.stream()
.map(Item::getItemValue)
.reduce(BigDecimal.ZERO, BigDecimal::add)
您还可以使用将 BiFunction 作为参数的 reduce 方法:
BigDecimal invoiceValue = invoiceItems.stream().reduce(BigDecimal.ZERO, (bd, item) -> bd.add(item.getItemValue()), BigDecimal::add);