为什么kotlin lambda反编译为java代码是(Function0)null.INSTANCE

当我在一个类中声明一个属性如下:

class xx{ var b:()->Boolean={false} } 

然后反编译如下:

 ...... public xxx() { this.b = (Function0)null.INSTANCE; } ...... 

(Function0)null.INSTANCE代表什么? 我认为这将是 :

 this.b= new Function0() { public final Object invoke() { return false; } }; 

但它不,为什么?

谢谢!

反编译器没有显示正确的结果:例如,当用JD-GUI进行时,你会得到:

 final class xx$b$1 extends Lambda implements kotlin.jvm.functions.Function0<Boolean> { public final boolean invoke() { return false; } public static final 1 INSTANCE = new 1(); xx$b$1() { super(0); } } public final class xx { // ... getter and setter private Function0<Boolean> b = (Function0)xx.b.1.INSTANCE; }