1. ホーム
  2. kotlin

[解決済み] lateinit "変数が初期化されたかどうかを確認する方法は?

2022-03-14 15:13:40

質問

をチェックする方法はないでしょうか? 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
    }
}

解決方法は?

があります。 lateinit の初期化状態をチェックできるように Kotlin 1.2 で改善されました。 lateinit 変数に直接アクセスできます。

lateinit var file: File    

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

のお知らせをご覧ください。 JetBrainsブログ または KEEP提案 .

UPDATEです。 Kotlin 1.2がリリースされました。このページでは lateinit の拡張はこちらです。