自制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