有没有办法在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?
}
}
答案 0 :(得分:8)
目前尚无法直接做到这一点。您可以通过将其存储在主构造函数中声明的属性中来实现此目标,如下所示:
class C private constructor(
private val bDelegate: B
) : A by bDelegate {
constructor() : this(B())
/* Use bDelegate */
}