我使用Java库。在异常类中有“localizedMessage”字段和“描述”字段。我不知道为什么,但是“description”(它是java String)被识别为String!通过Kotlin,当“description”为null时,条件描述== null返回false。的代码 示例:Kotlin无效检查错误
mvpView?.showToast(it.description?:it.localizedMessage)
或不埃尔维斯:
if (it.description.isNullOrBlank()) {
mvpView?.showToast(it.localizedMessage)
} else {
mvpView?.showToast(it.description)
}
它总是试图显示“说明”,但“评估表达”在调试模式下对描述返回true == NULL(如预期)。
科特林版本1.1.1
你怎么知道它显示'description'而不是'localizedMessage'?也许他们都是空的。 – glee8e
'String!'是用来表示String来自Java的符号,因此Kotlin实际上并不知道它是否可为空。 – pdpi
@ glee8e来自调试器 –