gpt4 book ai didi

java - 编译器如何翻译 Java 中的 lambda 表达式?

转载 作者:行者123 更新时间:2023-12-01 06:12:59 24 4
gpt4 key购买 nike

//Code 1

interface Demo {
double myMeth();
}

class MyClass {
public static void main(String args[]) {
Demo myDemo = () -> 98.6;
}
}

我想知道的是,编译器是如何实现该语句的?

() -> 98.6; //statement 1

上面的语句相当于

//Code 2

double myMeth() {
return 98.6;
}

那么,编译器是否替换了 statement 1通过code 2编译期间

或者编译器做了其他事情?

最佳答案

语义上(尽管不是实现上),它基本上与

相同
class MyClass {
public static void main(String args[]) {
Demo myDemo = new Demo() {
public double myMeth() {
return 98.6;
}
};
}
}

编译器实际上并不将 lambda 表达式转换为匿名类创建表达式。 Lambda 表达式以更高效的方式实现。

关于java - 编译器如何翻译 Java 中的 lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31229645/

24 4 0
文章推荐: hiveql - Hive - 组内前 n 条记录
文章推荐: jquery - 这是什么: $ ('
文章推荐: Jquery 淡出队列
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com