写了一段 Android Koltin 的代码,做浮点数计算。但是编译时报错:
Type mismatch: inferred type is Double? but Double was expected
出错的代码如下,出错是 try body 那行:
fun calc(a: Double?, b: Double?, c: Double?): String {
var result = 0.0
try {
result = a * b / c
} catch (e: Exception) {
Toast.makeText(this, "出错了",
Toast.LENGTH_SHORT).show()
}
return result.toString()
}
解决方法,将 Double? 类型强制转换为 Double 类型。
即用双感叹号,强制将可空类型转换为非可空类型。
result = a!! * b!! / c!!
inferred type
inferred 推断的意思。
null safety 的几种处理方式
非常推荐阅读一下 Kotlin 官方的这篇文章
https://kotlinlang.org/docs/null-safety.html
里面详细列举了处理 null safety 的几种方式。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式