最佳答案
Kotlin新手问,“为什么下面的代码不能编译?”:
var left: Node? = null
fun show() {
if (left != null) {
queue.add(left) // ERROR HERE
}
}
Smart cast to 'Node'是不可能的,因为'left'是可变的 此时可以更改的属性
我得到left
是可变变量,但我显式检查left != null
和left
是类型Node
,所以为什么不能智能强制转换为该类型?
我该如何优雅地解决这个问题?