[英]How to initialize lateinit property in kotlin. error "kotlin.UninitializedPropertyAccessException: lateinit property student has not been initialized"
[英]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屬性apiDisposable尚未初始化
任何人都可以告訴我如何檢查此變量是否已初始化? 有沒有像isInitialised()
這樣的方法
任何幫助,將不勝感激
if(::apiDisposable.isInitialized)
會解決你的問題。
一般來說,
::<lateinit variable name>.isInitialized
用於檢查是否已初始化。
將您的屬性聲明為可空類型的簡單屬性:
private var apiDisposable: Disposable? = null
使用安全呼叫表示法調用該方法:
override fun onPause() {
super.onPause()
apiDisposable?.dispose()
}
lateinit
保留用於保證初始化的變量,如果不是這種情況 - 不要使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.