fun setValue(variables: Map<String, Any>, value: Any?) {
val instance = operand.eval(variables) ?: throw NullPointerException("instance is null")
if (instance is LogicList<*>) {
instance.set(property.key.replace("[", "").replace("]", "").trim().toInt(), value)
} else {
throw IllegalArgumentException("变量 ${(operand as Variable).key} 不是数组")
}
}
代码如上 instance.set 方法 idea 提示我第二个参数 element 是 NoThing 类型 导致我 set 方法无法调用
Kotlin: Type mismatch: inferred type is Any? but Nothing was expected
直接编译 报了如上错误 instance 本身是 Any?类型的,由于做了 null 校验,所以是 Any 类型的。 LogicList 是 ArrayList 的扩展类,set 方法又 List 提供的。 这边我不太清楚要怎么改了,我本身也不太懂 kotlin 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.