从具有可为空类型的数组中创建不具有可为空类型的数组

时间:2018-11-21 12:29:50

标签: kotlin kotlin-null-safety

在Kotlin中,我们必须区分可空类型和不可空类型。假设我有一个Array<String?> fom,我知道其中的每个值实际上都不为null。是否有一种简单的方法可以从源数组创建Array<String>而不复制它?

2 个答案:

答案 0 :(得分:3)

array.requireNoNulls()返回相同的数组Array<T?>,其类型为非可选类型Array<T>(但是如果发现任何项IllegalArgmentException,则抛出null)。

如果确定您的数组没有null,则可以进行类型转换。

array as Array<String>

答案 1 :(得分:0)

Array。filterNotNull可能是更安全的方法。但是它将创建一个新的数组。

val items: Array<String?> = arrayOf("one", "two", null, "three")
val itemsWithoutNull: List<String> = items.filterNotNull()