Метод Stream.reduce
принимает в качестве аргумента BinaryOperator
. Функциональной сигнатурой a BinaryOperator
является (T,T) -> T
. Метод BigDecimal::min
имеет только один параметр в своей сигнатуре метода (т.е. (T) -> T
).
Почему компилятор не жалуется, когда я передаю BigDecimal::min
методу Stream.reduce
?
Пример кода:
List<BigDecimal> bigDecimalList = new ArrayList<>();
bigDecimalList.add(BigDecimal.valueOf(1));
bigDecimalList.add(BigDecimal.valueOf(2));
bigDecimalList.add(BigDecimal.valueOf(3));
BigDecimal minResult = bigDecimalList.stream().reduce(BigDecimal::min).orElse(BigDecimal.ZERO);
Спасибо.