Paw*_*ski 10 lambda decompiling kotlin jvm-bytecode
哪种解决方案更好?使用nullable lambda或传递空lambda作为默认参数?kotlin会以某种方式优化空的lambda吗?或者创建什么都不做的新实例?
class Test1(val action: () -> Unit = {})
不幸的是我不明白生成的字节码.让我们分析一下
val test11 = Test1()
反编译后给我们
private static final Test1 test11 = new Test1((Function0)null, 1, (DefaultConstructorMarker)null);
最后作为一个lambda传递这样的东西
var1 = (Function0)null.INSTANCE;
编辑:隐藏的问题是:Kotlin如何将空lambda视为默认值?
查看公开函数的最后一个参数:
internal fun showDialog(title: String, message:String?= null, okButtonAction: () -> Unit, koButtonAction:() -> Unit = {}){ //do things.....}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           8401 次  |  
        
|   最近记录:  |