Lambda 表达式与原理


自制IDEA的反编译工具


/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/bin/javap
-c -p $FileNameWithoutExtension$.class
$OutputPath$/$FileDirRelativeToSourcepath$

使用场景

Function 函数式接口

只有一个方法的接口

匿名内部类

依赖 java 的类型推断机制

如继承 Thread,复写 run 方法

如复写 Comparator

原理

使用@FunctionalInterface 可以帮助进行检查,但是不是必须的

匿名内部类的方式

生成$ 的内部方法

Lambda 表达式

通过 invokedynamic 指令实现,不会产生新的类

会生成一个新的有$ 的内部方法

应用:

stream 编程

参考

1、https://ata.atatech.org/articles/12000171704?spm=ata.23639746.0.0.432686caHCjv3c#WdMvwNz5


文章作者: 王利康
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 王利康 !
  目录