错误:类型推断失败

我正在尝试编写一个Android Kotlin应用程序,但是我得到了错误。 我哪里错了?

这就是我已经宣布我的HashMap:

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

错误:

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

你必须指定键的类型和地图的值。 像这样的东西:

 mParent = HashMap<String, String>() 

或者像这样:

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

具有*作为通用参数意味着,允许任何类型的对象作为键和值。 所以当你创建HashMap的时候,编译器不知道键和值的确切类型 – 它不能输入推论。 这就是为什么你得到这样的错误。

建议:Kotlin成语建议使用mutableMapOf() mapOf()mutableMapOf()方法创建一个映射,而不是使用Java风格的HashMap():

 mParent = mutableMapOf<String, String>() 

你可以像这样在kotlin中使用HashMap ….

 val context = HashMap<String, Any>() context.put("world", "John") context.put("count", 1) context.put("tf", true) 

如果您不确定您的密钥和值是什么,那么使用Any

 var mParent: MutableMap<Any, Any> ?= mutableMapOf() 

在你的情况下,编译器不确定这些aestriks是什么意思。