为什么 BiConsumer 功能接口接受具有返回类型的方法

我知道 BiConsumer 有一个接受 2 agr 并返回 void 的方法。


在这种情况下,map.put 如何被接受,其中接受 2 个参数并返回值?


Map<String,String> roles = new HashMap<>();

BiConsumer<String, String> consumer= (s,t) -> roles.put(s,t);

consumer.accept("XX", "XXXXX");

我预计下面的线会失败


BiConsumer<String, String> consumer(s,t) -> roles.put(s,t);

同样的方式,我预计下面的一个会失败,因为它需要字符串实例和字符串文字来添加/连接并返回字符串


BiConsumer<String, String> concat = String::concat; or

concat = (s,t) -> s.concat(t);

好像我误解了一些东西,但无法理解。有人可以解释为什么我的理解是错误的吗?


守候你守候我
浏览 109回答 1
1回答

九州编程

BiConsumer<String, String> consumer= (s,t) -> {&nbsp; &nbsp;String result = roles.put(s,t); // result is ignored&nbsp; &nbsp;return;}在 中也称为特殊 void 兼容性规则JLS。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java