以下代码来自Architecture-components-samples项目,您可以看到it。
类CheeseViewModel
接受Application
的参数,我需要传递Application
的参数以创建对象。
但是我在项目中找不到Application
的任何参数来实例化该类,您能告诉我为什么吗?
MainActivity.kt
class MainActivity : AppCompatActivity() {
private val viewModel by viewModels<CheeseViewModel>()
...
}
CheeseViewModel.kt
class CheeseViewModel(app: Application) : AndroidViewModel(app) {
val dao = CheeseDb.get(app).cheeseDao()
...
}
[MainActivity
扩展了AppCompatActivity
,该扩展了具有Activity
(在Kotlin中可用作getApplication()
method属性的getApplication()
)。