Intereting Posts
Android: Kotlin: пользовательский webView – не может быть вызван как функция. Функция 'invoke ()' не найдена Копирование файла автоматически с помощью pom `break` и` continue` в `forEach` в Котлине Как получить данные из пользовательской таблицы в Corda Как я могу проверить метод, который не вызывается для объекта без макета? Как я могу сказать Kotlin, что массив или коллекция не могут содержать нули? Kotlin & Vertx & Mongo: Как управлять функциями async CRUD? Круговая зависимость при компиляции с Kotlin 1.1.2-4, но не на 1.1.2-3 Kotlin: компилятор не выводит общий тип для некоторых операторов Markdown # против нескольких # Есть ли способ перебрать все поля класса данных без использования отражения? Как получить второй фрагмент из списка popBackStack в pop? Параметр конструктора Котлина без геттера Обработчик ответа соответствия с запросом в VertX Аргумент функции Котлина без аннотации типа

Могу ли я расширить на Java класс делегирования Kotlin?

Я пытаюсь расширить, на Java, класс делегирования Kotlin и получить следующую ошибку:

Не может наследовать от окончательного «Производного»

См. Код ниже.

То, что я пытаюсь сделать, – это украсить метод класса.

Любая идея, почему Котлин определил Derived как final? Есть ли способ, чтобы Derived не был окончательным, чтобы я мог наследовать его?

Ява:

 new Derived(new BaseImpl(10)) { // Getting the error on this line: `Cannot inherit from final 'Derived'` }; 

Котлин:

 interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { print(x) } } class Derived(b: Base) : Base by b 

* Пример отсюда: https://kotlinlang.org/docs/reference/delegation.html

По умолчанию классы Котлина являются окончательными . Отметьте класс open для его расширения (будь то от Kotlin или от Java):

 open class Derived(b: Base) : Base by b 

Тот факт, что это делегирующий класс, не должен влиять на взаимодействие Java (хотя я его не пробовал).