Kotlin null-check bug

时间:2017-04-10 11:59:08

标签: kotlin kotlin-null-safety

我使用Java库。在异常类中有“localizedMessage”字段和“description”字段。我不知道为什么,但“description”(这是java String)被识别为String!通过Kotlin,当“description”为null时,条件描述== null返回false。 代码示例:

mvpView?.showToast(it.description?:it.localizedMessage)

或没有猫王:

if (it.description.isNullOrBlank()) {
     mvpView?.showToast(it.localizedMessage)
} else {
     mvpView?.showToast(it.description)
}

它总是尝试显示“description”,但调试模式中的“evaluate expression”在description == null(按预期)返回true。

Kotlin版本是1.1.1

1 个答案:

答案 0 :(得分:1)

原因是在getter中,如果description为null,则返回另一个字符串而不是描述。

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";
}