问题是当我尝试将Java List(ArrayList)对象作为ProxyArray(ProxyArray.fromList())传输到javascript时,无法与.forEach和.push一起使用。另外,如果我按原样转移java List对象,则可以将其与.forEach一起使用,但不能与.push一起使用。有什么解决办法吗?
这里是要旨https://gist.github.com/okrean/5d6978bac15f257b90f581f371769935
答案 0 :(得分:1)
java.util.ArrayList
的实例在某些方面的行为类似于JS Array,但是,java.util.ArrayList
的实例没有将其原型设置为Array.prototype。
这就是为什么在您的值上找不到push
函数,而被调用的forEach
函数实际上是在Java对象上找到的forEach
函数,而不是{ {1}}来自JS数组。
一种解决方法是使用JS中的forEach
手动将java.util.ArrayList
转换为JS数组。
另请参阅this issue中的讨论。