【发布时间】:2018-10-26 12:10:14
【问题描述】:
我有这个 java 源文件:
import java.util.function.*;
public class t {
public static void main(String[] args) {
Function<Integer,Integer> r = (a) -> a*a+2*a+1;
System.out.println(r.apply(2));
}
}
我编译它,它按预期工作。 Here 是 javap -c -v t 的输出,我在其中找不到 lambda 的位置。每当调用 lambda 时,告诉 jvm 使用输入 Integer 计算表达式的字节码在哪里?
【问题讨论】:
-
(Ljava/lang/Integer;)Ljava/lang/Integer;来自 javap 输出,接受 Integer 参数并返回 Integer -
@HemantPatel 告诉 jvm 计算表达式
a*a+2*a+1的代码在哪里
标签: java lambda functional-programming jvm bytecode