почему 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; } 
Intereting Posts
Равномерное авторазведение нескольких текстовых элементов Как скрыть поле для латинировки var Kitlin с помощью Java? Не могу построить проект с Android Studio 2.3 и Gradle Получить класс компаньона в сопутствующем объекте Как плоская карта над списком объектов, которые могут иметь пустую коллекцию Kotlin: условные элементы при создании карты После добавления макетов программно, как изменить текстовое представление «#» нажатием кнопки Расширение интерфейса Java с параметрами от Kotlin Kotlin: Локальная функция передается встроенным функциям как параметр inlined? Каков правильный способ создания экземпляра класса из KType Отражение Котлина недоступно Как autowire SessionFactory в спящем режиме 5? Сеттеры и геттеры в Котлине Ошибка сборки Kotlin в Android Studio по адресу << intent.putExtra («string», it.getString («string») >> Внедрение типизированного класса, параметризованного абстрактным типом