在java源代码中,Collectors.toList定义为:
public static <T>
Collector<T, ?, List<T>> toList() {
return new CollectorImpl<>((Supplier<List<T>>) ArrayList::new, List::add,
(left, right) -> { left.addAll(right); return left; },CH_ID);
}
对应的CollectorImpl构造函数
CollectorImpl(Supplier<A> supplier,
BiConsumer<A, T> accumulator,
BinaryOperator<A> combiner,
Set<Characteristics> characteristics) {
this(supplier, accumulator, combiner, castingIdentity(), characteristics);
}
我们将List::add
视为CollectorImpl
的构造函数的第二个参数,我想知道它是如何映射到类型为累加器的
BiConsumer<A,T>
,因为BiConsumer
使用两个参数而List::add
仅消耗一个参数。我在这里缺少什么?