使用moshi转换HashMap

我试图将元素的HashMap转换为JSON字符串。 我正在使用此链接中使用的方法。

  val elementsNew: HashMap = HashMap(elements) val type = Types.newParameterizedType(Map::class.java, String::class.java, Element::class.java) var json: String = builder.adapter(type).toJson(elementsNew) 

但是,这给出了以下错误

错误:(236,40)types推断失败:没有足够的信息来推断有趣的适配器中的参数T(p0:Type!):JsonAdapter! 请明确指定。

任何人都可以告诉我哪里有错? 是因为Kotlin吗?

查看adapter()方法的签名,它不能从参数中推断出它的types参数:

 public  JsonAdapter adapter(Type type) 

因此你必须明确地提供types:

 var json = builder.adapter>(type).toJson(elementsNew) 

或者可选地:

 val adapter: JsonAdapter> = builder.adapter(type) var json = adapter.toJson(elementsNew)