箭头操作符如何在java 8中内部工作?

时间:2014-09-17 19:31:51

标签: java java-8

我知道箭头的左侧有参数,箭头的右侧是参数所在的函数。但是,我想知道java 8如何映射左侧和右侧并转换为函数。那里发生了什么,我在哪里可以找到这些信息?

1 个答案:

答案 0 :(得分:7)

当你有一个->时,javac编译器会添加一个带有代码内容的静态方法。它还向类添加动态调用方信息,以便JVM可以将lambda实现的接口映射到参数和返回类型。 JVM在运行时生成代码以将接口绑定到生成的方法。

与lambdas和匿名类的区别在于,隐含变量只需要有效最终(因为本来可以是最终的)并且成员变量被复制,即它不会保留对this的引用。外在的。

它可以告诉RunnableCallable<void>之间的区别,即使两者都没有参数。有关详细信息http://vanillajava.blogspot.com/2014/09/lambdas-and-side-effects.html