Метод 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);
Спасибо.