是的,lateinit
可以用于非 Activity 场景。lateinit
是 Kotlin 中的一个关键字,用于初始化一个非空属性,该属性在声明时没有被初始化。它通常与 by lazy
或 by init
一起使用,以便在首次访问时进行初始化。
在非 Activity 场景中,您可以将 lateinit
用于管理应用程序中的其他非 Activity 类或单例对象的初始化。例如,您可以在 ViewModel、Repository 或其他数据类中使用 lateinit
来初始化依赖项。
以下是一个使用 lateinit
的 ViewModel 示例:
class MyViewModel : ViewModel() {
lateinit var myDependency: MyDependency
init {
myDependency = MyDependency()
}
}
在这个例子中,MyViewModel
类有一个非空的 myDependency
属性,它在声明时使用 lateinit
进行初始化。在 ViewModel 的 init
代码块中,我们初始化了 myDependency
。这样,当我们在其他类中使用 MyViewModel
时,myDependency
已经被正确初始化,不会出现空指针异常。