Java8:如何使用2 BiConsumer进行方法收集才能返回值作为最终结果?

时间:2020-05-13 06:56:09

标签: java-8 consumer collect

java8提供以下方法:

<R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator,
BiConsumer<R,R> combiner)

从Javadoc开始,关于BiConsumer:表示一个接受两个输入参数并且不返回结果的操作。

根据以下代码:

String forward = s.toLowerCase().codePoints()
.filter(Character::isLetterOrDigit).collect(StringBuilder::new,
                 StringBuilder::appendCodePoint,
                 StringBuilder::append)
        .toString();

collect的第二个和第三个参数如下:

  1. BiConsumer,用于将流中的每个元素累积到结果数据结构中;此示例使用appendCodePoint方法。
  2. 代表组合器的BiConsumer。

据我了解,有2个使用者,它们接收参数,但不返回结果,我不知道在这种情况下如何返回字符串?

我在互联网上搜索了Google,但找不到任何解释。

我知道StringBuilder :: appendCodePoint和StringBuilder :: append的含义。但是它们被传递给2个使用者,并且使用者不应返回任何值。我对这段代码感到困惑。

0 个答案:

没有答案
相关问题