如何在Kotlin中获得委托实例?

时间:2017-07-19 06:57:03

标签: java kotlin

我想获得委托类的实例。

具体来说,在以下示例中,我想获取传递的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

1 个答案:

答案 0 :(得分:3)

使用b前缀声明val可以解决问题:

......派生( val b:基础):基于b ...