2017-12-07 3 views
2

これはまっすぐな質問ですが、回答が見つかりません。 lateinit varがKotlinで初期化されたときに通知する方法はありますか?lateinit varが初期化されたときに通知されます(Kotlin)

this::coolvar.isInitializedで初期化されているかどうかを確認できますが、これは同じではありません。

onCreate()に、このような依存性注入または後期初期設定として、あなたに初期化されていない値は、アプリケーションのコンテキストで意味をなさないときだけ、最も簡単な例ではうまく機能lateinit var

答えて

3

ありがとうございます。

必要なのは、特定の動作をするプロパティ代理人です。 Delegates.observableをご覧ください:

var coolvar by Delegates.observable("initial value") { _, old, new -> 
    println("coolvar has been updated") 
} 
+0

これは継承クラスでは使用できません。 – SARose

+1

制限はありません。カスタムget/set、e.i.を持つプロパティと同じ方法で使用します。 getter/setterをオーバーライドする以外はすべてが同じです。 – voddan

関連する問題