【发布时间】:2021-03-21 10:54:16
【问题描述】:
我有以下我认为有效的代码,因为递归是由于回调而发生的。它不是作为函数调用的结果直接调用的。但是编译器似乎认为存在递归问题
class Model(callBack: CallBack) {
interface CallBack {
fun onSomething()
}
}
class SomeClass {
fun createModel() = Model(callBack)
val callBack = object : Model.CallBack {
override fun onSomething() {
val anotherModel = createModel()
// Use model for something
}
}
}
Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly
有解决办法吗?
编辑
我还尝试将callBack 更改为一个函数,这样同一个实例不会被多个模型引用,但我得到了同样的错误
【问题讨论】: