почему Android Studio требуется добавить ненулевой вызов Asserted (!!) даже после добавления безопасности в Kotlin - PullRequest
0 голосов
/ 08 мая 2018

enter image description here

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

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

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

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

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

if (it?.isNotEmpty()==true) {
    //do your work here
}
0 голосов
/ 08 мая 2018

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

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

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

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

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