xzw*_*ppy 5 java lambda kotlin
当我在类中声明一个属性时:
class xx{
var b:()->Boolean={false}
}
Run Code Online (Sandbox Code Playgroud)
然后反编译如下:
......
public xxx() {
this.b = (Function0)null.INSTANCE;
}
......
Run Code Online (Sandbox Code Playgroud)
(Function0)null.INSTANCE 代表什么?我认为这将是 :
this.b= new Function0() {
public final Object invoke() {
return false;
}
};
Run Code Online (Sandbox Code Playgroud)
但它没有,为什么?
谢谢!
反编译器未显示正确结果:例如,使用 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;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
763 次 |
最近记录: |