我有一个功能
fun init(properties: Collection<Map<Any, Any>>?) { properties?. filter { it.isNotEmpty() }?. }
1)我需要过滤空值 . 2)我只需要Map所有键和值为String . 3)对于我想要的每个剩余 Map :每个 Map 中的每个键都获得一个值 .
我怎么能这样做对不起,我是Kotlin的新人 .
您可以使用.all检查所有.keys和.values是否为字符串:
properties ?.filter { it.isNotEmpty() && it.keys.all { key -> key is String } && it.values.all { value -> value is String } } ?.forEach { /* do some stuff with it */ }
请注意,您仍然需要未经检查的强制转换才能对过滤后的映射进行 Map<String, String> 操作,因为编译器无法从键和值检查中推断出类型 .
Map<String, String>
1 回答
您可以使用.all检查所有.keys和.values是否为字符串:
请注意,您仍然需要未经检查的强制转换才能对过滤后的映射进行
Map<String, String>
操作,因为编译器无法从键和值检查中推断出类型 .