






















这是一个创建于 1345 天前的主题,其中的信息可能已经有所发展或是发生改变。
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 。
1 yazinnnn 2022 年 10 月 8 日class LogicList:ArrayList<Any?>() |
2 coderstory 2022 年 10 月 8 日 |
3 coderstory 2022 年 10 月 8 日class LogicList<E> : ArrayList<E> { constructor() var currentRowNumber = -1L @JvmField fun next() = currentRowNumber++ fun reset() { |
4 coderstory 2022 年 10 月 8 日简化一下 fun setValue( ) { val a: List<*> = instance as List<*>; if(instance is MutableList<*>){ fun aaa():Any{ |
5 yazinnnn 2022 年 10 月 8 日LogicList 不要带泛型,继承 ArrayList<Any?>() |
6 Leviathann 2022 年 10 月 8 日kotlin 和 java 的泛型没区别 另外这里的 [ 和 ] 如果是前缀和后缀的话可以直接改用 removeSurrounding |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。