java 8中BiConsumer接口的使用

2 java java-8 functional-interface

我是使用流和函数式接口进行编程的新手,并且在文档中java.util.function.BiConsumer描述了如下方法accept,但尚不清楚

void accept(T t,
            U u)
Performs this operation on the given arguments.
Parameters:
t - the first input argument
u - the second input argument
Run Code Online (Sandbox Code Playgroud)

函数接口可以使用 lamda 表达式来引用,如下所示

BiConsumer<String,String> a=(a,b)->{
 
}
Run Code Online (Sandbox Code Playgroud)

但“此操作在这里到底意味着什么”。提前致谢

Ste*_*n C 5

但这里的“此操作”到底是什么意思呢?

BiConsumer接口实际上是任何采用两种引用类型(或在您的示例中为相同类型)的两个参数并且不返回任何内容的函数的签名。符合此接口的函数可以用它们做任何事情。它可以打印它们。它可以将它们添加到某些地图中。它可以……把它们扔掉,并且绝对什么也不做。

“此操作”指的是(实际上)实现该接口的 lambda。或者更准确地说,lambda 的作用

所以...基本上...当您将 lambda 作为类型参数传递BiConsumer给某个方法时,该方法可以调用accept(arg1, arg2)期望它将执行 javadoc 所说的操作;即,将 lambda(或其他)实现的“操作”应用于这两个参数。

现在这个BiConsumer接口有点不寻常,因为它不返回任何内容。所以它不像其他功能接口那样广泛使用。但如果您正在寻找示例,请尝试以下操作: