Kotlin:如何使用 lateinit 属性 检查变量是否已初始化
Kotlin: How to check variable with lateinit property is initialized or not
我有一个声明为
的变量
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()
这样的方法
如有任何帮助,我们将不胜感激
if(::apiDisposable.isInitialized)
将解决您的问题。
一般来说,
::<lateinit variable name>.isInitialized
用于检查是否已经初始化
将您的 属性 声明为可空类型的简单 属性:
private var apiDisposable: Disposable? = null
使用安全调用符号调用方法:
override fun onPause() {
super.onPause()
apiDisposable?.dispose()
}
lateinit
保留给保证被初始化的变量,如果这不是你的情况 - 不要使用它。
我有一个声明为
的变量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()
如有任何帮助,我们将不胜感激
if(::apiDisposable.isInitialized)
将解决您的问题。
一般来说,
::<lateinit variable name>.isInitialized
用于检查是否已经初始化
将您的 属性 声明为可空类型的简单 属性:
private var apiDisposable: Disposable? = null
使用安全调用符号调用方法:
override fun onPause() {
super.onPause()
apiDisposable?.dispose()
}
lateinit
保留给保证被初始化的变量,如果这不是你的情况 - 不要使用它。