为什么不能在 main 方法中属性代理

来源:8-8 案例:基于泛型实现 Model 实例的注入

Petterp

2020-01-05

老师您好,我将MainViewModel中的属性代理移到main方法中为什么不能用呢,不太明白这个报错提示

class MainViewModel {
    val databaseModel: DatabaseModel by ModelDelegate
    val networkModel: NetworkModel by ModelDelegate
    val spModel: SpModel by ModelDelegate
    val spModel2: SpModel by ModelDelegate
}
...

fun main() {
    initModels()

    val databaseModel: DatabaseModel by ModelDelegate
    ...
}

提示报错如下
image-20200105222110821

写回答

1回答

bennyhuo

2020-01-05

属性代理不能用作局部变量吧,你移到函数外试试

----

补充说明:局部变量属性代理从 Kotlin 1.1 开始支持。

1
4
BlackC00
回复
Petterp
我也遇到相同问题了 感谢
2021-10-20
共4条回复

学会Kotlin 突破开发语言瓶颈

如果有一门语言可以取代Java,那么它一定是Kotlin。

1760 学习 · 481 问题

查看课程