我正在尝试将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)
但这会产生以下错误
错误:(236,40)类型推断失败:没有足够的信息来推断 有趣的适配器中的参数T(p0:Type!):JsonAdapter! 请明确说明。
任何人都可以告诉我哪里出错了吗?是因为Kotlin吗?
答案 0 :(得分:7)
查看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)