Търся изграждане на javascript масив в Java, използвайки rhino на мозила NativeArray
клас, но когато се опитам да добавя елементи 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)
Ако създам NativeArray с Java масив от началото, всичко работи чудесно.
String[] str=new String[2];
str[0]="aaaa";
str[1]="bbbb";
NativeArray array=new NativeArray(str);
Търсих изходния код на NativeArray и бях изненадан да видя, че методът за добавяне винаги хвърля грешка тук е изходният код: http://grepcode.com/file/repo1.maven.org/maven2/org.mozilla/rhino/1.7R4/org/mozilla/javascript/NativeArray.java#1825
Забележка: Използвам мозъла rhino 1.7R4, която е най-новата версия досега
Това е грешка от мозъла rhino или правя нещо нередно?
Благодаря
Отговори:
1 за отговор № 1Няма смисъл да се прилага .add()
за родния масив. Те са масиви с фиксирана дължина и дължината им е постоянна.
Забележи, че .add()
се маркира като "опционална операция" в java.util.Collection
интерфейс.
0 за отговор № 2
Можете да използвате следния код вместо да добавите ():
NativeArray array;
array.put(array.size(), array, result);