错误:类型推断失败

Nya*_*ock 2 android hashmap kotlin

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

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

 var mParent: MutableMap<*, *> ?= null
 mParent = HashMap()
Run Code Online (Sandbox Code Playgroud)

错误:

类型推断失败。没有足够的信息来推断构造函数 HashMap 中的参数 K。请明确说明

Bob*_*Bob 7

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

mParent = HashMap<String, String>()
Run Code Online (Sandbox Code Playgroud)

或者像这样:

var mParent: MutableMap<String, String>? = null
mParent = HashMap()
Run Code Online (Sandbox Code Playgroud)

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

建议:Kotlin 惯用语建议使用mapOf()ormutableMapOf()方法来创建映射,而不是使用 Java 风格的 HashMap():

mParent = mutableMapOf<String, String>()
Run Code Online (Sandbox Code Playgroud)