首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Map.minus(地图)结果键上键入erasure

在Map.minus(地图)结果键上键入erasure
EN

Stack Overflow用户
提问于 2019-06-24 05:41:09
回答 1查看 21关注 0票数 0

示例代码:

代码语言:javascript
复制
val map1: Map<String, DataClass> = ...
val map2: Map<String, DataClass> = ...
val result = map1 - map2

在Android Studio中,result的类型被指示为Map<Any, DataClass>,这迫使我求助于:

代码语言:javascript
复制
val result = (map1 - map2).mapKeys { it.key.toString() }

文档使我期望将类型K保留为String,或者我在这里遗漏了什么?

代码语言:javascript
复制
/**
 * Returns a map containing all entries of the original map except those entries
 * the keys of which are contained in the given [keys] collection.
 *
 * The returned map preserves the entry iteration order of the original map.
 */
@SinceKotlin("1.1")
public operator fun <K, V> Map<out K, V>.minus(keys: Iterable<K>): Map<K, V> =
    this.toMutableMap().apply { minusAssign(keys) }.optimizeReadOnlyMap()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 06:02:51

我的错;我显然没有仔细阅读文档。

修复:

代码语言:javascript
复制
val result = map1 - map2.keys
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56727936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档