无法在函数中达到类参数

时间:2018-12-05 09:58:21

标签: function kotlin parameter-passing

我无法在类函数中到达类参数(应用程序)。 请说明其背后的原因是什么?为什么参数可以在类主体中访问但不能从类函数访问?

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
}

}

1 个答案:

答案 0 :(得分:0)

在您的代码中,application是传递给构造函数的参数。它仅在构建实例时可用:运行任何init { }块并初始化任何属性时。 (后者是为什么您可以使用它来初始化taskEntities的原因。)此后它不再持久。

如果您希望实例“记住”参数的值,请在其前面添加val(或var)以使其成为属性:

class VM_MainActivity(val application: Application) // …