【发布时间】:2016-10-03 18:39:32
【问题描述】:
我想知道是否有办法检查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
}
}
【问题讨论】:
-
也许您需要使属性为空(将类型更改为
File?),然后检查它是否为空? -
好吧,我确实试过了,它会成功,但是我必须将
allSeriesvar 编辑为seriesDir?.listFiles()?.map { it.name }?.toTypedArray(),这不是很“漂亮” -
你可以做一个普通的旧空检查,智能转换会让它更漂亮。
if (seriesDir != null) {allSeries = seriesDir.listFiles().map { it.name }.toTypedArray()} -
请考虑接受更多最新的answer
标签: kotlin