kotlin 的lambda闭包
lambda闭包会被编译成 Java中的匿名内部类。定义方法是
val lambda_name = {para1, para2 ->
....
....
}
根据参数数量不同,实现的接口也会不一样:

一个参数的话,实现的时候就会实现Function1这个接口。其他类推。
例如:kotlin代码:
Test.kt val compareTwoNum = {num1:Int, num2:Int-> if (num1<=num2) print("littlequal") else print("big") } fun main() { compareTwoNum(5,6) }
反编译成java代码:
public final class TestKt { @NotNull private static final Function2 compareTwoNum;//在内部以一个成员变量来表示 @NotNull public static final Function2 getCompareTwoNum() { return compareTwoNum; } public static final void main() { compareTwoNum.invoke(5, 6); } // $FF: synthetic method public static void main(String[] var0) { main(); } static { compareTwoNum = (Function2)null.INSTANCE;// } }

浙公网安备 33010602011771号