>我有一个声明如下的变量
private lateinit var apiDisposable: Disposable
然后以onPause()
方法,我正在做
override fun onPause() {
super.onPause()
if (!apiDisposable.isDisposed)
apiDisposable.dispose()
}
但我明白这个
科特林。UninitializedPropertyAccessException: lateinit property apiDisposable 尚未初始化
谁能告诉我如何检查这个变量是否已初始化?有没有像isInitialised()
这样的方法
任何帮助将不胜感激
将属性声明为可为 null 类型的简单属性:
private var apiDisposable: Disposable? = null
使用安全调用表示法调用该方法:
override fun onPause() {
super.onPause()
apiDisposable?.dispose()
}
lateinit
是为保证初始化的变量保留的,如果不是这种情况 - 不要使用它。
if(::apiDisposable.isInitialized)
将解决您的问题。
通常
::<lateinit variable name>.isInitialized
用于检查它是否已初始化。