我想找到最清晰、最优雅的方式来转换 Map<String, String?>
到 Map<String, String>
,过滤掉 null
的对值。
我在下面有一个人为的解决方案,但我不喜欢我必须做一个不安全的 !!
。有更好的方法吗?
fun Map<String, String?>.filterNonNull() = this
.filter { it.value != null }
.map { it.key to it.value!! }
.toMap()
最佳答案
mapNotNull
充当 map
和 filter
的组合,但返回一个 List
而不是 > map
你想要这样
fun <K, V> Map<K, V?>.filterNonNull(): Map<K, V> =
this.mapNotNull {
(key, value) -> if (value == null) null else Pair(key, value)
}.toMap()
关于kotlin - 如何以清晰的方式将 kotlin Map<String, String?> 转换为 Map<String, String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170820/