Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么双消费者函数接口接受具有返回类型的方法_Java_Java 8 - Fatal编程技术网

Java 为什么双消费者函数接口接受具有返回类型的方法

Java 为什么双消费者函数接口接受具有返回类型的方法,java,java-8,Java,Java 8,我知道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"); Map roles=newhashmap();

我知道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");
Map roles=newhashmap();
双消费者消费者=(s,t)->roles.put(s,t);
消费者。接受(“XX”、“XXXXX”);
我以为底线会失败

BiConsumer<String, String> consumer(s,t) -> roles.put(s,t);
BiConsumer消费者(s,t)->roles.put(s,t);
和我期望下面的方法一样,它会失败,因为它需要字符串实例和字符串文本来添加/concat并返回字符串

BiConsumer<String, String> concat = String::concat; or
concat = (s,t) -> s.concat(t);
BiConsumer concat=String::concat;或
concat=(s,t)->s.concat(t);
好像我误解了什么,但无法理解。 有人能解释为什么我的理解是错误的吗?

BiConsumer consumer=(s,t)->{
BiConsumer<String, String> consumer= (s,t) -> {
   String result = roles.put(s,t); // result is ignored
   return;
}
String result=roles.put(s,t);//忽略结果 返回; }

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

谢谢你的回答,我刚想出来。谢谢你的时间,我会接受的answer@WhyJava供参考。也可以看到和它的所有相关问题。从一个必须知道它的人那里…@Eugene,你能改变string的变量名吗,因为它会导致编译错误。我不想让别人指出或误解这个概念