我有一个声明为的变量
private lateinit var apiDisposable: Disposable
然后在onPause()方法中,我正在做
override fun onPause() {
super.onPause()
if (!apiDisposable.isDisposed)
apiDisposable.dispose()
}
但我明白了
kotlin.UninitializedPropertyAccessException: lateinit property
apiDisposable has not been initialized
任何人都可以告诉我如何检查此变量是否已初始化?有没有像isInitialised()这样的方法
任何帮助,将不胜感激
解决方法:
将您的属性声明为可空类型的简单属性:
private var apiDisposable: Disposable? = null
使用安全呼叫表示法调用该方法:
override fun onPause() {
super.onPause()
apiDisposable?.dispose()
}
lateinit保留用于保证初始化的变量,如果不是这种情况 – 不要使用它.