0

我正在寻找使用 mozilla rhinoNativeArray类在 java 中构建一个 javascript 数组,但是当我尝试将元素添加到NativeArraya时java.lang.UnsupportedOperationException被抛出。

这是我的代码:

NativeArray array=new NativeArray(1);
array.add("cccc");

这是我收到的错误:

Caused by: java.lang.UnsupportedOperationException
    at org.mozilla.javascript.NativeArray.add(NativeArray.java:1826)

如果我从一开始就使用 java 数组创建 NativeArray,那么一切都很好。

String[] str=new String[2];
str[0]="aaaa";
str[1]="bbbb";
NativeArray array=new NativeArray(str);

我正在查看 NativeArray 源代码,我惊讶地发现 add 方法总是抛出错误这里是源代码: http: //grepcode.com/file/repo1.maven.org/maven2/org.mozilla/rhino /1.7R4/org/mozilla/javascript/NativeArray.java#1825

注意:我使用的是 mozilla rhino 1.7R4,这是迄今为止的最新版本

这是 Mozilla rhino 的错误还是我做错了什么?

谢谢

4

2 回答 2

1

.add()为原生数组实现是没有意义的。它们是固定长度的数组,长度是恒定的。

注意在界面.add()中标记为“可选操作” 。java.util.Collection

于 2013-04-03T21:05:15.207 回答
0

You can use the following code instead of add():

NativeArray array;
array.put(array.size(), array, result);
于 2014-04-15T14:16:07.643 回答