java - 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)->{
}
但是“这个操作在这里到底意味着什么”。提前致谢
解决方案
但是这里的“这个操作”到底是什么意思呢?
该BiConsumer
接口实际上是任何函数的签名,该函数接受两个引用类型(或在您的示例中,相同类型)的两个参数并且不返回任何内容。符合此接口的函数可以对它们做任何事情。它可以打印它们。它可以将它们添加到一些地图中。它可以……把它们扔掉,什么也不做。
“此操作”指的是(实际上)实现接口的 lambda。或者更准确地说,lambda做了什么。
所以......基本上......当你将 lambda 作为类型参数传递BiConsumer
给某个方法时,该方法可以调用accept(arg1, arg2)
并期望它会执行 javadoc 所说的操作;即将lambda(或其他)实现的“操作”应用于这两个参数。
现在BiConsumer
界面有点不寻常,因为它没有返回任何东西。所以它不像其他功能接口那样被广泛使用。但是,如果您正在寻找示例,请尝试以下操作:
推荐阅读
- mysql - 使用 count 从不同的表中获取行数作为生成的列?
- javascript - TranslateY 制造冲突,寻找替代方案来下推页面内容
- html - HTML5 音频小部件未连接到非标准端口
- java - 我无法让 passEntered 和 userEntered 进入另一个班级
- jupyter-notebook - Jupyter Notebook:nbconvert 模板本地化问题
- html - 论坛签名使用什么咏叹调角色?
- gmail-api - gmail api 刷新令牌不起作用
- ios - Swift Combine,如何取消执行
- reactjs - 删除firebase上的文档后如何更新数据而不重新加载页面
- c# - 每次使用 ComboBox.DropDownOpened 打开时更新组合框数据