変数が初期化されているかどうかを確認する方法があるかどうか疑問に思います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
: