【发布时间】:2017-12-15 19:37:46
【问题描述】:
我正在尝试将 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) 类型推断失败:没有足够的信息来推断 有趣的适配器中的参数 T(p0:类型!):JsonAdapter! 请明确说明。
谁能告诉我错在哪里?是因为 Kotlin 吗?
【问题讨论】:
-
值得注意的是,这并不完全是因为 Kotlin。在 Java 中,您最终会得到
JsonAdapter<Object>(不能将它用于您的Map<String, Element>类型)。 Kotlin 强制您提供参数化参数,以便您更快地发现错误。