【发布时间】:2016-04-12 21:09:50
【问题描述】:
Java 8 中的 Lambda 提供了一种将问题定义为语句并保持代码简洁的好方法。但是它们会改变 JVM 中语句的执行方式吗?
假设我正在编写一个 lambda,它流式传输对象列表并根据条件过滤它们,并将过滤后的值作为相同数据类型的列表返回。我的 lambda 基本上会有一个过滤器和一个收集器。 当这段代码被发送到VM时,编译器是否将lambda函数替换为传统的if循环和for循环?
我问这个是因为虚拟机还是一样的,它最初是为命令式编程设计的。 Java 8 中真正改变的是我们定义问题陈述的方式(FP)。我的理解正确吗?
【问题讨论】:
-
您似乎将 lambdas 与流管道混淆了。
标签: java lambda functional-programming jvm java-8