【发布时间】:2022-12-02 23:12:06
【问题描述】:
我需要对列表进行一些操作。
例如我有TestData的列表:
data class TestData (
val value: Int?,
val name: String
)
我需要将TestData 的列表映射到String 的列表。这是我的代码:
val names = listOfTestData
.map { data -> getName(data.value) } <- Type mismatch. Required: Int, found Int?
.distinct()
问题是函数getName(value: Int) 只接受不可为空的类型。我可以以某种方式跳过 listOfTestData 中 value 为 null 的元素吗?
我可以在制作地图之前过滤值,但我必须在地图内部使用!!,我想要一个更优雅的解决方案。
val names = listOfTestData
.filter { it.value != null }
.map { data -> getName(data.value!!) }
.distinct()
请告诉我如何在不使用!!的情况下完成此操作
【问题讨论】:
标签: kotlin arraylist collections kotlin-extension kotlin-null-safety