2013-04-03 48 views
0

我使用的是Mozilla犀牛NativeArray類,但是 當我嘗試將元素添加到NativeArray一個java.lang.UnsupportedOperationException拋出尋找Java構建一個javascript數組。Mozilla的犀牛NativeArray.add()拋出一個錯誤 - 總是

這裏是我的代碼:

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

,這裏是我收到的錯誤:

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

如果我創建NativeArray與從一開始一切的Java數組是偉大的工作。

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的犀牛1.7 R4這是目前爲止的最新版本

這是一個來自mozilla rhino的bug還是我做錯了什麼?

感謝

+0

是否使用犀牛的要求?還有其他的方法可以與Java中的JS進行交互,它比Rhino更穩定。 – Julien 2013-04-03 21:07:26

+0

@JulienS。你能給我更多的細節嗎? – 2013-04-03 23:52:11

回答

1

它沒有任何意義實施.add()的本地陣列。它們是固定長度的數組,長度不變。

請注意,.add()java.util.Collection接口中被標記爲「可選操作」。

+0

是的..你說得對。我在想這更像是ArrayList – 2013-04-03 23:55:51

0

您可以使用下面的代碼,而不是加():

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