estoy usando la reflexión para recuperar un campo de instancia como este:El uso de la reflexión para recuperar una matriz de primitivas de un tipo desconocido
private int[] numbers = ....
Con el objeto de campo, puedo comprobar si el campo contiene una matriz y si lo hace, me gustaría recorrer las entradas de la matriz. Así que si el objeto que contiene el campo de arriba se llama "foo", entonces me gustaría tener algo como esto:
field.setAccessible(true);
Object value = field.get(foo);
La variable valor por encima contendrá mi matriz de INT. ¿Cómo trato ese objeto como una matriz regular e itero sobre sus valores?
Edit: lo siento, me perdí un punto crucial de mi historia anterior. Estoy haciendo lo anterior de forma genérica, así que no sé qué primitiva contiene la matriz. Podría ser un int [] o un largo [] etc. Por lo tanto, la conversión a int [] no funcionaría en el caso largo [] obviamente. Uy!
Veo que el método get recuperará el valor en un índice determinado, sin embargo, ¿cómo se obtiene la longitud de la matriz? – digiarnie
@digiarnie, el método está un poco escondido en el javadoc entre los otros captadores, es 'Array.getLength (matriz de objetos)' :) –
sí, eso es exactamente lo que quería y sí, tienes razón, estaba escondido entre todos aquellos otros getters y simplemente me lo perdí! ¡Gracias! – digiarnie