Я не могу понять, как функция передается через лямбду в этот метод
public class OrderUtil {
public static <I, O> List<O> runInBatches(List<I> inputList,
Function<List<I>, List<O>> functionToRunInBatches) {
return Lists.partition(inputList, BATCH_CHUNK_SIZE).stream()
.flatMap(batch -> functionToRunInBatches.apply(batch).stream())
.collect(toList());
}
}
Я вижу код ниже, я не могу понять, как приведенная ниже лямбда-функция переводится в functionToRunInBatches выше?orderDao.getOrderForDates (...) принимает три параметра (orders, startdate, enddate), но моя функция берет список и возвращает список.Как этот вызов работает нормально?
Я прочитал учебники и документацию по функции.
Возможно ли, чтобы кто-то нарушил то, как лямбда отображается в функции выше?Я не могу представить, как все это работает.
private List<Order> getOrderForDates(List<Long> orderNumbers,
tring startDate, String endDate){
return OrderUtil.runInBatches(orderNumbers,
orderBatch -> orderDAO.getOrderForDates(orderBatch, startDate, endDate));
}