1

我使用 Java 库。在异常类中有“localizedMessage”字段和“description”字段。我不知道为什么,但是“描述”(即 java 字符串)被识别为字符串!通过 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

4

1 回答 1

1

原因在于 getter,如果描述为空,它返回另一个字符串而不是描述。

public String getDescription() {
    if (description != null) {
        return description;
    }
    if (UNKNOWN_ERROR.equals(getCode())) {
        return String.format("Received error with code %s", getCode());
    }
    return "Failed with unknown error";
}
于 2017-04-10T12:17:43.737 回答