使用 moshi 转换 HashMap
Converting a HashMap using moshi
我正在尝试将 HashMap
个元素转换为 JSON 个字符串。我正在使用此 link 中使用的方法。
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)
但这给出了以下错误
Error:(236, 40) Type inference failed: Not enough information to infer
parameter T in fun adapter(p0: Type!): JsonAdapter!
Please specify it explicitly.
谁能告诉我哪里出了问题?是因为 Kotlin 吗?
查看adapter()
方法的签名,它无法从参数推断其类型参数:
public <T> JsonAdapter<T> adapter(Type type)
因此您必须明确提供类型:
var json = builder.adapter<Map<String, Element>>(type).toJson(elementsNew)
或者:
val adapter: JsonAdapter<Map<String, Element>> = builder.adapter(type)
var json = adapter.toJson(elementsNew)
我正在尝试将 HashMap
个元素转换为 JSON 个字符串。我正在使用此 link 中使用的方法。
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)
但这给出了以下错误
Error:(236, 40) Type inference failed: Not enough information to infer parameter T in fun adapter(p0: Type!): JsonAdapter! Please specify it explicitly.
谁能告诉我哪里出了问题?是因为 Kotlin 吗?
查看adapter()
方法的签名,它无法从参数推断其类型参数:
public <T> JsonAdapter<T> adapter(Type type)
因此您必须明确提供类型:
var json = builder.adapter<Map<String, Element>>(type).toJson(elementsNew)
或者:
val adapter: JsonAdapter<Map<String, Element>> = builder.adapter(type)
var json = adapter.toJson(elementsNew)