Почему 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
}