Mozilla Rhino NativeArray.add()总是抛出一个错误

时间:2013-04-03 21:02:37

标签: java javascript rhino

我正在寻找使用mozilla rhino NativeArray类在java中构建一个javascript数组, 但是,当我尝试向NativeArray添加元素时,会抛出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的错误,还是我做错了什么?

由于

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

您可以使用以下代码而不是add():

NativeArray array;
array.put(array.size(), array, result);