到地图以明确的方式?,kotlin"/>

首页 > 解决方案 > 如何转换 kotlin 地图到地图以明确的方式?

问题描述

我想找到将 a 转换Map<String, String?>为 a的最清晰和最优雅的方法Map<String, String>,过滤掉具有null值的对。

我在下面有一个人为的解决方案,但我不喜欢我必须如何做一个 unsafe !!。有一个更好的方法吗?

fun Map<String, String?>.filterNonNull() = this
            .filter { it.value != null }
            .map { it.key to it.value!! }
            .toMap()

标签: kotlin

解决方案


根据此处的讨论,您还可以使用以下内容:

fun <K, V> Map<K, V?>.filterNotNullValues(): Map<K, V> =
    mutableMapOf<K, V>().apply { 
        for ((k, v) in this@filterNotNullValues) if (v != null) put(k, v) 
    }

推荐阅读