我知道 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
提交
取消