【发布时间】:2017-06-27 14:15:08
【问题描述】:
下面的 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"));
}
}
上面的代码是打印一些随机值,如何让它打印文本?
【问题讨论】:
-
有什么问题?
-
这个
Function返回Consumer<Integer>。要打印一些东西,你需要做secondFunction.apply("").accept(10) -
您为什么要编写您不理解的代码,然后想知道为什么它没有按照您的意愿执行?就做
Consumer<String> consumer = x -> System.out.println(x); consumer.accept("Text");- 为什么你需要一个函数来返回一个给定你根本不使用的字符串参数的消费者? -
或者干脆
System.out::println;)