Estoy buscando construir una matriz javascript en java usando mozilla rhino NativeArray
clase, Sin embargo, cuando trato de agregar elementos a NativeArray
un java.lang.UnsupportedOperationException
es aventado.
aquí está mi código:
NativeArray array=new NativeArray(1);
array.add("cccc");
y aquí está el error que estoy recibiendo:
Caused by: java.lang.UnsupportedOperationException
at org.mozilla.javascript.NativeArray.add(NativeArray.java:1826)
Si creo NativeArray con una matriz java desde el principio, todo funciona muy bien.
String[] str=new String[2];
str[0]="aaaa";
str[1]="bbbb";
NativeArray array=new NativeArray(str);
Estaba buscando en el código fuente de NativeArray y me sorprendió ver que el método de agregar siempre arroja un error Aquí está el código fuente: http://grepcode.com/file/repo1.maven.org/maven2/org.mozilla/rhino/1.7R4/org/mozilla/javascript/NativeArray.java#1825
Nota: Estoy usando mozilla rhino 1.7R4, que es la última versión hasta ahora
¿Es esto un error de mozilla rhino o estoy haciendo algo mal?
Gracias
Respuestas
1 para la respuesta № 1No tiene sentido implementar .add()
para una matriz nativa. Se trata de matrices de longitud fija, y la longitud es constante.
Tenga en cuenta que .add()
está marcado como una "operación opcional" en el java.util.Collection
interfaz.
0 para la respuesta № 2
Puedes usar el siguiente código en lugar de agregar ():
NativeArray array;
array.put(array.size(), array, result);