簡體   English   中英

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屬性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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM