2009-07-09 16 views
5

Sto provando a utilizzare la reflection per chiamare un metodo che accetta un array di byte.Java: metodo corretto per ottenere la classe di una matrice primitiva per la riflessione

sto iniziando a fare:

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

Ma che non funziona (classe previsto,} atteso) I [] linea di byte. Qualcuno sa cosa dovrei fare? Eseguire il cast di un oggetto e dichiarare che il metodo accetta un oggetto?

risposta

11

Prova questo:

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

grande, grazie, che ha funzionato. Non capisco davvero perché Integer [] x = {5}; and Integer [] y = {new Integer (5)}; lavoro. – jbu

+0

Bene, 'Class [] parameterTypes = {byte []. Class}' funziona anche come i tuoi esempi. Il problema con il codice originale sta tentando di invocare il metodo _instance_ getClass() sulla dichiarazione byte []. – ChssPly76

+0

(E probabilmente dovrebbe essere 'Classe []'. –

Problemi correlati