Создать Array без обнуляемых типов из Array с обнуляемыми типами
В Kotlin мы должны различать обнуляемые типы и не обнуляемые типы. Допустим, у меня есть Array<String?>
из которого я знаю, что каждое значение в нем на самом деле не равно нулю. Есть ли простой способ создать Array<String>
из исходного массива, не копируя его?
2 ответа
Решение
array.requireNoNulls()
возвращает тот же массив Array<T?>
с необязательным типом Array<T>
(Но бросает IllegalArgmentException
если какой-либо предмет найден null
).
если вы уверены, что ваш массив не имеет null
тогда вы можете распечатать.
array as Array<String>
Массив. filterNotNull может быть более безопасным способом сделать это. Но это создаст новый массив.
val items: Array<String?> = arrayOf("one", "two", null, "three")
val itemsWithoutNull: List<String> = items.filterNotNull()