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()
解决方案
根据此处的讨论,您还可以使用以下内容:
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)
}
推荐阅读
- sonarqube - 从项目配置文件中删除规则后如何清除 SonarQube 报告
- java - Unstable Miglayout - 使两个相同大小的增长列
- javascript - 无法读取未定义错误的属性“过滤器”
- javascript - 创建地图以减少。Javascript
- awk - 使用 awk 编辑大文本文件时出错
- ios - 快速将数据从视图控制器传递到选项卡查看控制器
- prolog - 读取文件时在序言中预期的运算符
- sapui5 - UI5 的时间戳
- scala - 由于隐式参数错误,删除身份验证信息失败
- hibernate - Hibernate Envers 在有和没有 envers 的不同模式上共享域对象