「lateinit」変数が初期化されているかどうかを確認するにはどうすればいいですか? 質問する

「lateinit」変数が初期化されているかどうかを確認するにはどうすればいいですか? 質問する

変数が初期化されているかどうかを確認する方法があるかどうか疑問に思いますlateinit。例:

class Foo() {

    private lateinit var myFile: File

    fun bar(path: String?) {
        path?.let { myFile = File(it) }
    }

    fun bar2() {
        myFile.whateverMethod()
        // May crash since I don't know whether myFile has been initialized
    }
}

ベストアンサー1

Kotlin 1.2 では、変数lateinitの初期化状態を直接確認できる改善が行われました。lateinit

lateinit var file: File    

if (this::file.isInitialized) { ... }

発表はこちらをご覧くださいJetBrains ブログまたはKEEP提案

更新: Kotlin 1.2 がリリースされました。機能強化については、こちらをご覧くださいlateinit:

おすすめ記事