android - 错误 : type inference failed

标签 android hashmap kotlin

我正在尝试编写一个 android Kotlin 应用程序,但出现以下错误。我哪里出错了?

这就是我声明我的 HashMap 的方式:

 var mParent: MutableMap<*, *> ?= null
 mParent = HashMap()

错误:

type inference failed. Not enough information to infer parameter K in constructor HashMap. Please specify it explicitly

最佳答案

您必须指定映射的键和值的类型。像这样的:

mParent = HashMap<String, String>()

或者像这样:

var mParent: MutableMap<String, String>? = null
mParent = HashMap()

使用 * 作为通用参数意味着任何类型的对象都可以作为键和值。因此,当您创建 HashMap 时,编译器不知道键和值的确切类型 - 它无法进行类型推断。这就是为什么你会得到这样的错误。

建议:Kotlin 习惯用法建议使用 mapOf()mutableMapOf() 方法来创建 map ,而不是使用 Java 风格的 HashMap():

mParent = mutableMapOf<String, String>()

关于android - 错误 : type inference failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45519391/

相关文章:

android - Proguard:保留所有有注释的类

java - 具有弱值的 HashMap

android - 如何在kotlin中对包含数字的字符串进行排序

java - 当我回到 kotlin 时,如何将微调器值设置为我在离开页面之前选择的最后一个值

android - 推送通知kotlin

android - 如何为不同的产品风格定义不同的依赖关系

java - 如何在数组中获取动态微调器选择的项目 ID?

java - 从Map中获取键值对

java - 如何实现具有2个独立键的 map ?

android - 错误 :Execution failed for task ':app:kaptDebugKotlin'