Articles of методы расширения

Kotlin: Как дочерний класс может использовать функцию расширения родителя в вызове супер-конструктора?

Как дочерний класс может использовать функцию расширения родителя в поле лямбда? Рассмотрим этот родительский класс: abstract class Parent(val field: Int.() -> Any) { fun Int.print() = println(this) } И этот ребенок: class Child : Parent({ print() // DOESN'T COMPILE this.print() // DOESN'T COMPILE 5.print() // DOESN'T COMPILE val value = 5 value.print() // DOESN'T COMPILE […]

Как написать общий метод расширения в Котлине?

В проекте, над которым я работаю, я обнаружил, что написал несколько методов расширения для некоторых типов, чтобы вернуть значение по умолчанию, если опция имеет значение null. Например, у меня может быть Boolean? объект, и я хочу использовать его в условном выражении по умолчанию false, поэтому я бы написал: if (myOptional?.default(false)) { .. } Я написал […]

У меня есть два метода расширения Kotlin для одного и того же класса, но с разными генерическими сигнатурами и компилятор жалуется

Я пишу две функции расширения для одного и того же класса: class Something<T:Any> { … } Они похожи: fun Something<Int>.toJson(): String = … fun Something<Double>.toJson(): String = … И приводит к ошибке компилятора: Kotlin: конфликт объявления платформы: следующие объявления имеют одну и ту же подпись JVM Как я могу создать две функции расширения с различной […]

Intereting Posts
MultiAutoCompleteTextView не завершает фильтрацию Подавить «Использовать синтаксис доступа к свойствам» для метода или класса Делегирование недвижимости, измененное изменчивой картой java.lang.Integer нельзя передать в java.lang.Long в Kotlin (когда начальное значение равно null) Программирование создания пейджера представления в панели вкладок, но просмотр содержимого пейджера прокручивается через вкладки Тип-Безопасность с необязательными полями в классе данных для JSON Как я могу передать правильную ссылку на метод, чтобы Nashorn мог ее выполнить? Пропустить массив строк, которые не являются нулевыми, как массив строк с нулевым значением Выбранный в настоящее время отладчик Java не поддерживает точки останова типа «Точки останова линии Котлин», Ошибка сборки Kotlin kapt, gradle и ebean Использование расширения свойства Gradle в kotlin / spring boot Недвижимость Котлина с геттером. Могу ли я указать начальное значение? Android Studio 3 версия Kotlin Котлин: лямбда никогда не компилируется Как вернуть интерфейс, например, javawith Kotlin