首页 > 解决方案 > java 8中BiConsumer接口的使用

问题描述

我是使用流和功能接口编程的新手,并且在文档中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

可以使用如下的 lamda 表达式来引用功能接口

BiConsumer<String,String> a=(a,b)->{
 
}

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

标签: javajava-8functional-interface

解决方案


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

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

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

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

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


推荐阅读