lambda函数下面的内容是什么?
public class FunctionInterface {
public static void main(String[] args) {
Function<String, Consumer<Integer>> secondFunction = s -> x -> System.out.println(x);
System.out.println(secondFunction.apply("Text"));
}
}
上面的代码是打印一些随机值,如何使其打印文本?
答案 0 :(得分:4)
您的变量secondFunction
是Function
,需要String
并返回Consumer<Integer>
。在这一行:
System.out.println(secondFunction.apply("Text"));
您正在apply
上调用Function
,这将返回Consumer<Integer>
,然后您打印该对象,这将导致toString
被调用{ {1}}对象(然后打印字符串)。
它不会运行lambda表达式,这是您所期望的。试试这个:
Consumer<Integer>
答案 1 :(得分:0)
你说你想打印“文字”这可能更容易吗? 您不需要使用Function返回使用者。我很困惑,目的是什么?
Consumer<String> consumer = System.out::println;
consumer.accept("Text");