Как получить ссылку на делегированный экземпляр в Kotlin, используя делегирование 'by'? - PullRequest
0 голосов
/ 09 сентября 2018

Есть ли способ получить ссылку на делегированный объект в Kotlin?Вот пример:

interface A {
    fun test()
}
class B: A {
    override fun test() {
        println("test")
    }
}
class C: A by B() {
    override fun test() {
        // ??? how to get a reference to B's test() method? 
    }
}

1 Ответ

0 голосов
/ 09 сентября 2018

В настоящее время нет способа сделать это напрямую. Этого можно добиться, сохранив его в свойстве, объявленном в основном конструкторе следующим образом:

class C private constructor(
    private val bDelegate: B
) : A by bDelegate {
    constructor() : this(B())

    /* Use bDelegate */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...