【发布时间】:2020-03-27 23:55:18
【问题描述】:
我有一个对象列表,其中一个可选的 id 为 String,我想用它制作一张地图。 我想让我的地图的键不可为空:所以像这样:
data class Foo(
val id: String? = null
val someStuff: String? = null,
)
val foo = listOf(Foo("id1"), Foo())
val bar = foo.filterNot { it.id == null }.associateBy { it.id }
这里bar 类型是Map<String?, Foo> 但不是Map<String, Foo>
我的解决方法是添加一个非空断言调用:!!,但它看起来并不干净。
有没有简单安全的方法来做到这一点?
【问题讨论】:
标签: kotlin