我无法在类函数中到达类参数(应用程序)。 请说明其背后的原因是什么?为什么参数可以在类主体中访问但不能从类函数访问?
class VM_MainActivity(application: Application) : AndroidViewModel(application) {
val taskEntities:List<TaskEntity>?= Repository(application.applicationContext).taskEntities //"application" is reachable
fun fillWithSampleData() {
Repository(**application**.applicationContext).fillDBwithSampleData() //error: Unresolved refernce: application
}
}
答案 0 :(得分:0)
在您的代码中,application
是传递给构造函数的参数。它仅在构建实例时可用:运行任何init { }
块并初始化任何属性时。 (后者是为什么您可以使用它来初始化taskEntities
的原因。)此后它不再持久。
如果您希望实例“记住”参数的值,请在其前面添加val
(或var
)以使其成为属性:
class VM_MainActivity(val application: Application) // …