为什么具有返回类型的 Java 方法引用与使用者接口匹配?
我对以下代码感到困惑
class LambdaTest {
    public static void main(String[] args) {
        Consumer<String>         lambda1 = s -> {};
        Function<String, String> lambda2 = s -> s;
        Consumer<String>         lambda3 = LambdaTest::consume; // but s -> s doesn't work!
        Function<String, String> lambda4 = LambdaTest::consume;
    }
    static String consume(String s) { return s;}
}
我本来以为lambda3的分配会失败,因为我的消费方法与消费者接口中的接受方法不匹配 - 返回类型是不同的,字符串与无效。
此外,我一直认为 Lambda 表达式和方法引用之间存在一对一的关系,但正如我的示例所示,情况显然并非如此。
有人可以向我解释这里发生了什么吗?
 
					 
				 
				    		 
				    		 
				    		 
				    		