Kotlin空列表处理与元素转换代码实现咨询
Kotlin 列表空安全转换解决方案
你可以结合安全调用运算符(?.)和Elvis运算符(?:),把元素转换的map操作放在安全调用的后面,就能同时处理空列表判断和元素转换的需求:
// 示例:假设原列表是List<String>,要转成List<Int> val result = list?.map { it.toInt() } ?: emptyList()
逻辑说明:
list?.map { ... }:如果list不为null,就对每个元素执行转换逻辑(比如字符串转整数),返回转换后的新列表;如果list是null,这部分结果就是null。?: emptyList():当左边结果为null时,返回空列表,刚好覆盖“列表为null则返回空列表”的场景。
还有更简洁的写法,用orEmpty()方法替代Elvis运算符:
val result = list.orEmpty().map { it.toInt() }
orEmpty()是Kotlin集合的扩展方法,作用是:如果调用它的集合为null,返回对应空集合;如果不为null,返回集合本身。空列表调用map后依然是空列表,同样能满足需求。
内容的提问来源于stack exchange,提问作者JUAN CHEN
相关产品推荐
相关产品推荐

