Kotlin 和 Jackson:“没有足够的信息来推断运算符 fun <T : > JsonNode!> set(p0: String!, p1: JsonNode!) 中的参数 T”

aer*_*xr1 7 android jackson kotlin

我正在从 jackson 库 2.9 更新到 2.11。但在一些 kotlin 类中我收到以下错误:

“没有足够的信息来推断运算符 fun set 中的参数 T(p0: String!, p1: JsonNode!): T!请明确指定。”

这是一个损坏的代码示例:

fun test() {
    var objectMapper = ObjectMapper()
    var testObjectNode = objectMapper.createObjectNode()
    var result = objectMapper.createArrayNode()
    testObjectNode.set("test",testObjectNode)
}
Run Code Online (Sandbox Code Playgroud)

在 kotlin 中,我必须强制转换 set action 的结果或指定 T 类型才能使其工作。

testObjectNode.set<JsonNode>("test",testObjectNode)
Run Code Online (Sandbox Code Playgroud)

你能解释一下为什么在java上我必须不明确类型吗?