Kotlin:如何使用 lateinit 属性检查变量是否初始化



>我有一个声明如下的变量

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用于检查它是否已初始化。

最新更新