tutorial studio programacion matriz matrices identidad extraer example elementos datos almacenar velocity

velocity - programacion - matrices en r studio



¿Cuál es la mejor manera de acceder a una matriz dentro de Velocity? (7)

Terminé usando ListTool de velocity-tools.jar. Tiene métodos para acceder a los elementos de una matriz y también obtener su tamaño.

Tengo una matriz de Java como:

String[] arr = new String[] {"123","doc","projectReport.doc"};

En mi opinión, la forma natural de acceder sería:

#set($att_id = $arr[0]) #set($att_type = $arr[1]) #set($att_name = $arr[2])

Pero eso no está funcionando. He venido con esta solución. Pero es demasiado código para una tarea tan fácil.

#set($counter = 0) #foreach($el in $arr) #if($counter==0) #set($att_id = $el) #elseif($counter==1) #set($att_type = $el) #elseif($counter==2) #set($att_name = $el) #end #set($counter = $counter + 1) #end

¿Hay alguna otra manera?


hay un counter $ velocityCount implícito que comienza con el valor 1 por lo que no tiene que crear su propio contador.


String[] arr = new String[] {"123", "doc", "projectReport.doc"};

En mi opinión, la forma natural de acceder sería:

#set($att_id = $arr[0]) #set($att_type = $arr[1]) #set($att_name = $arr[2])

El valor para esto se puede obtener usando $array.get("arr", 1) porque no hay una forma directa de obtener el valor de una matriz como $att_id = $arr[0] en velocidad.
Espero que funcione :)


Puede usar el uso de Velocity 1.6: para una matriz llamada $array , simplemente puede hacer $array.get($index) .

En la próxima Velocity 1.7, uno podrá hacer $array[$index] (así como $list[$index] y $map[$key] ).




Puede envolver la matriz en una List usando Arrays.asList(T... a) . El nuevo objeto List está respaldado por la matriz original, por lo que no asigna una cantidad innecesaria de copias. Incluso los cambios realizados en la nueva lista se propagarán nuevamente a la matriz.

Luego puede usar $list.get(int index) para sacar sus objetos en Velocity.

Si necesita obtener solo uno o dos objetos de una matriz, también puede usar Array.get(Object array, int index) para obtener un elemento de una matriz.