如何解决每当我以非空断言进行一次调用时,android studio 都会从其他相同的变量中删除警告
每当我试图在一个函数中创建几个布尔变量时,它有 e: Entry 吗?在它的构造函数中,android studio 通知我只允许安全或非空断言调用。因此,每当我以非空断言进行一次调用时,android studio 都会从其他变量中删除此警告,并且代码正在运行。为什么会这样?
val isHighResult = e!!.y >= 3.5
val isMediumResult = e.y > 1.5 && e.y < 3.5
val isLowResult = e.y <= 1.5
解决方法
函数参数是常数。您的第一行代码保证 e
为非空,或者不会到达更多代码行,因为如果 e
为空,它将抛出 KotlinNullPointerException。因此,从逻辑上讲,如果到达第二行代码,e
不可能为 null,并且编译器可以将其智能转换为不可为 null 的 Entry。
这不是可以使用 !!
的少数情况之一。如果您将其声明为可为空的函数参数,则该函数内的代码没有理由期望 e
为非空。通过将其声明为可空,您的函数(向使用它的程序员)宣布将 null 作为参数传递是安全的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。