我想知道是否有一种方法可以检查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
}
}
最佳答案
Kotlin 1.2中的lateinit
进行了改进,可以直接检查lateinit
变量的初始化状态:
lateinit var file: File
if (this::file.isInitialized) { ... }
请参见JetBrains blog或KEEP proposal上的声明。
更新: Kotlin 1.2已发布。您可以在这里找到
lateinit
增强功能: