gpt4 book ai didi

java - 为什么 BiConsumer 功能接口(interface)接受具有返回类型的方法

转载 作者:行者123 更新时间:2023-11-30 05:30:15 25 4
gpt4 key购买 nike

我知道 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);

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

最佳答案

BiConsumer<String, String> consumer= (s,t) -> {
String result = roles.put(s,t); // result is ignored
return;
}

JLS中也称为特殊无效兼容性规则。

关于java - 为什么 BiConsumer 功能接口(interface)接受具有返回类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57714899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com