public BigDecimal sumBigDecimalByList(List<T> dtoList, Function<T, BigDecimal> val) { if (CollectionUtil.isEmpty(dtoList)) { return BigDecimal.ZERO; } return dtoList.stream().map(val).reduce(BigDecimal.ZERO, BigDecimal::add); } 该方法如何传递参数
时间: 2023-12-19 08:07:30 浏览: 205
BigDecimal.js.zip
该方法需要传递两个参数:
1. 一个 `List<T>` 类型的参数,名为 `dtoList`,表示要对其中的元素进行操作;
2. 一个 `Function<T, BigDecimal>` 类型的参数,名为 `val`,表示要对 `T` 类型的元素进行转换,从而得到一个 `BigDecimal` 类型的值。
你可以通过 Lambda 表达式来传递第二个参数。例如,假设有一个 `List<Order>` 类型的列表,你想要计算它们的总金额,可以这样调用该方法:
```
List<Order> orderList = ...;
BigDecimal totalAmount = sumBigDecimalByList(orderList, order -> order.getAmount());
```
这里的 `amount` 是 `Order` 类中的一个 `BigDecimal` 类型的字段或者对应的 getter 方法。Lambda 表达式 `order -> order.getAmount()` 将这个字段或方法转换成了一个 `Function<Order, BigDecimal>` 类型的对象,作为第二个参数传递给了 `sumBigDecimalByList` 方法。
阅读全文