Intereting Posts
kotlin alias собственность делегирование исключает исключение Есть ли способ открыть URL-адрес в окне Private Window / Ingognito с помощью Java? Классы данных в интерфейсе Ошибка базы данных Android Room: неиспользуемый параметр: дни в функции @Query Почему универсальные типы алгебраических данных требуют `T` для типов членов? SimpleDateFormat обеспечивает неправильный год Я сейчас разрабатываю приложение для Android с Kotlin, но произошла ошибка: CompilationException: не удалось встроить метод в 'readText' Добавить функцию расширений в класс Math в kotlin Kotlin – Значение преобразования при инициализации Внедрение интерфейса Java – Kotlin Почему результат функции не работает как предложение в заявлении when в Kotlin? Каково место в иерархии типов типов с возможностью NULL? Ошибка при переходе с Java на Kotlin. Ошибка – org.gradle.api.tasks.TaskExecutionException: выполнение не выполнено для задачи: app: compileDebugKotlin ' Адаптер, дублирующий просмотр Recycler «JSON от Klaxon's довольно печатает» "

почему 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; } }; 

но это не так, почему?

Благодаря!

Solutions Collecting From Web of "почему kotlin lambda декомпилируется в java-код (Function0) null.INSTANCE"

Декомпилятор не показывает правильный результат: например, когда вы делаете это с 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; }