【发布时间】:2017-04-10 11:59:07
【问题描述】:
我使用 Java 库。在异常类中有“localizedMessage”字段和“description”字段。我不知道为什么,但是“描述”(即java String)被识别为String!通过 Kotlin,当 "description" 为 null 时,条件 description == null 返回 false。 代码示例:
mvpView?.showToast(it.description?:it.localizedMessage)
或者没有猫王:
if (it.description.isNullOrBlank()) {
mvpView?.showToast(it.localizedMessage)
} else {
mvpView?.showToast(it.description)
}
它总是尝试显示“描述”,但调试模式下的“评估表达式”在描述 == null 时返回 true(如预期的那样)。
Kotlin 版本是 1.1.1
【问题讨论】:
-
你怎么知道它显示的是
description而不是localizedMessage?也许他们两个都是空的。 -
String!是用来表示 String 来自 Java 的符号,因此,Kotlin 实际上并不知道它是否可以为空。 -
来自调试器的@glee8e