![](/img/trans.png)
[英]“Function0 is not a functional interface” error when passing java lambda to kotlin fun
[英]why kotlin lambda decompiled to java code is (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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.