私はJavaライブラリを使用しています。例外クラスには、 "localizedMessage"フィールドと "description"フィールドがあります。私は理由はわかりませんが、 "description"(これはJavaのStringです)はStringとして認識されます! "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を返します)。
Kotlinのバージョンは、説明がnullの場合1.1.1理由はゲッターにあった
「localizedMessage」の代わりに「description」が表示されたことをどのように知っていますか?おそらく両方ともヌルです。 – glee8e
'String!'は、文字列がJavaから来ていることを示すために使用される表記法であり、したがって、Kotlinは、それがヌル可能であるかどうかを実際には認識しません。 – pdpi
@ glee8eデバッガから –