假设我有 2 个表达式:
val x: Int? = null as Int?
和
val x: Int? = null as? Int?
它们之间有什么不同?
为什么第一个是不安全的 Actor ?
最佳答案
实际上,当转换失败时,不安全转换会引发异常,而当转换操作失败时,安全转换会转换为 null
。
val x1: Int? = 1.0 as? Int?
println(x1)
打印:
null
这里的代码:
val x: Int? = 1.0 as Int?
抛出异常:
Exception in thread "main" java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Integer
关于kotlin - 强制转换和安全强制转换运算符与 null 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51101016/