我知道 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; orconcat = (s,t) -> s.concat(t);好像我误解了一些东西,但无法理解。有人可以解释为什么我的理解是错误的吗?
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
BiConsumer<String, String> consumer= (s,t) -> {
String result = roles.put(s,t); // result is ignored
return;
}
在 中也称为特殊 void 兼容性规则JLS。
添加回答
举报
0/150
提交
取消