Convirtiendo un HashMap usando moshi

Estoy tratando de convertir un HashMap de elementos en una cadena JSON. Estoy usando el método usado en este enlace .

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

Pero esto da el siguiente error

Error: (236, 40) Falló la inferencia de tipo: No hay información suficiente para inferir el parámetro T en el adaptador de diversión (p0: ¡Escriba!): ¡JsonAdapter! Por favor especifíquelo explícitamente.

¿Alguien puede decirme dónde está la falla? ¿Es por Kotlin?

Al observar la firma del método adapter() , no puede inferir su parámetro de tipo del argumento:

 public <T> JsonAdapter<T> adapter(Type type) 

Por lo tanto, debe proporcionar el tipo explícitamente:

 var json = builder.adapter<Map<String, Element>>(type).toJson(elementsNew) 

o alternativamente:

 val adapter: JsonAdapter<Map<String, Element>> = builder.adapter(type) var json = adapter.toJson(elementsNew) 
  • Declaración de campo POJO, establecida en valor inicial o nulo
  • Analizando json con API remota rota