2009-07-09 12 views
5

Estoy tratando de usar la reflexión para llamar a un método que toma una matriz de bytes.Java: forma correcta de obtener la clase de una matriz primitiva para la reflexión

estoy empezando fuera haciendo:

Class myClass = anObject.getClass(); 
Class[] parameterTypes = 
{byte[].getClass();}; 

Pero eso no quiere trabajar (clase era de esperar,} esperada) en la línea de byte []. ¿Alguien sabe lo que debería hacer? ¿Lanzar a un objeto y declarar que el método toma un objeto?

Respuesta

11

Prueba esto:

Class[] parameterTypes = new Class[] {byte[].class}; 
+0

genial, gracias, que funcionó. Realmente no entiendo por qué Entero [] x = {5}; y Entero [] y = {nuevo Entero (5)}; trabajo. – jbu

+0

Bueno, 'Class [] parameterTypes = {byte []. Class}' también funciona, como lo hacen sus ejemplos. El problema con el código original es intentar invocar el método getClass() _instance_ en la declaración byte []. – ChssPly76

+0

(Y que probablemente debería ser 'Clase []'. –

Cuestiones relacionadas