Создать 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()
Другие вопросы по тегам