【发布时间】:2020-07-22 19:48:04
【问题描述】:
我想使用 Kotlin 委托,但我不想在委托人之外创建委托。委托的所有示例都如下所示:
interface Worker {
fun doWork()
}
class Supervisor(workerDelegate: Worker) : Worker by workerDelegate {
}
class Delegate : Worker {
override fun doWork() {
// actual work
}
}
fun main() {
val delegate = Delegate()
val supervisor = Supervisor(delegate)
supervisor.doWork() // delegates to delegate
}
但我想创建Delegate inside Supervisor。像这样的:
class Supervisor : Worker by workerDelegate {
init {
val workerDelegate = Delegate()
}
}
这样的事情可能吗?
【问题讨论】: