gpt4 book ai didi

java - Stream.reduce 的累加器参数中通配符的目的是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:58 26 4
gpt4 key购买 nike

A reduce method Java Stream :

<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);

有助于根据流中对象的某些属性减少流。

但是,我不清楚为什么 accumulator不能更直接和服务于相同的目的:

BiFunction<U, T, U> accumulator .

accumulator 中的通配符有什么额外的灵 active ?的签名提供(以降低可读性为代价)?

最佳答案

why the accumulator could not be more straightforward and serving the same purpose:

它可能是,但那会比需要的更严格。如果你说一个

BiFunction<String, Object, String> accumulator = (a,b) -> a + b;

你应该能够将它传递给一个

String join = strings.stream().reduce("text: ", accumulator, (a, b) -> a + b);

String join = ints.stream().reduce("long num: ", accumulator, (a, b) -> a + b);

即您可以为这两种归约编写一个累加器。

关于java - Stream.reduce 的累加器参数中通配符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36083746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com