Как получить делегированный экземпляр в Котлин?

Я хотел бы получить экземпляр делегированного класса.

В частности, в следующем примере я хотел бы получить экземпляр прошедшей Base b но получить ошибку при попытке использовать b .

 interface Base { fun print() } class BaseImpl(val x: Int) : Base { override fun print() { print(x) } } open class Derived(b: Base) : Base by b { override fun print() { printSomethingBefore() b.print() // b isn't recognized :( printSomethingAfter() } } 

* Источник для примера: https://kotlinlang.org/docs/reference/delegation.html

Объявление b с префиксом val делало трюк:

… Derived ( val b: Base): Base by b …

Intereting Posts
как правильно инициализировать общий ресурс в kotlintest 2.x (interceptSpec) Java.lang.ClassNotFoundException: Не нашел класс Kotlin подавить предупреждение неиспользуемой переменной Удалить геттеры и сеттеры из кода kotlin Запустите операцию наложения, не показывая остальную часть приложения. вызывать часть потока один раз с несколькими подписчиками? Посылка: неспособность маршалировать стоимость Именованная инъекция не работает Как расширить статические поля Java в kotlin Kotlin coroutines: использование синхронного использования cassandra vs для перевода асинхронного использования Как добавить приложение create-react-kotlin-app в качестве модуля для проекта kotlin-multiplatform? kapt: как получить исходные комментарии? переместить вид в зависимости от направления движения Как насмехаться над объектом Singleton Kotlin? Делегирование конструктора Котлина во внутренний класс данных?