【Kotlin】lateinitの使い方
lateinitって?
JavaをKotlinにconvertしたら、
property must be initialized or be abstract
っておこられて、IntelliJに直してもらおうとしたら
add lateinit modifier
と提案されました。
lateinitってなに( ˊ࿁ˋ )?
lateinit: KotlinでNonNullなプロパティーの初期化をconstructorより後に遅らせられる機能。
使い方
(property must be initialized or be abstract) var student: String (lateinit) lateinit var yCookie: String
制約
いくつか決まりごとがあるみたい。
valには使えない(以前は使えたが今は使えない)
Nullableには使えない
プリミティブ型には使えない
private 以外にすると外から見える可能性がある → 意図しない使い方になる可能性