我正在寻找使用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的错误,还是我做错了什么?
由于
答案 0 :(得分:1)
为本机数组实现.add()
没有意义。它们是固定长度的数组,长度是恒定的。
请注意,.add()
在java.util.Collection
界面中标记为“可选操作”。
答案 1 :(得分:0)
您可以使用以下代码而不是add():
NativeArray array;
array.put(array.size(), array, result);