Почему Android Studio требуется добавить ненулевой вызов Asserted(!!) даже после добавления безопасности в Kotlin

введите описание изображения здесь

it обозначить список объектов на изображении. Здесь контрольный список не пуст. но показывает ошибку для добавления (?) безопасность. но снова показывают ошибку, чтобы добавить ненулевой Asserted (!!) даже добавить безопасности.
Ошибка может быть исправлена ​​только после добавления этого.

 if (it?.isNotEmpty()!!) {
    //do your work here
 }

почему андроид студии требуется добавить ненулевой Asserted (!!) вызов.

2 ответа

Решение

Ваш it обнуляется (отсюда ? после этого). Таким образом, заявление становится, на простом английском языке, "если it не является нулевым, не пустым?", который является логическим. Однако, что если it нулевой?

Ваша оценка it?.isNotEmpty() производит Boolean?, что не принято в случае.

Таким образом, одно из возможных решений - сказать: "Я знаю, что это не будет нулевым в то время" и заменить его на it!!.isNotEmpty(),

Другим вариантом является разбиение вашего оператора if, например, так:

if (it != null && it.isNotEmpty())

Вы можете проверить это так

if (it?.isNotEmpty()==true) {
    //do your work here
}
Другие вопросы по тегам