.class de vetor [RESOLVIDO]

Olá a todos.

estou começando a utilizar reflexão, mas encontrei um problema:

tenho o método:

public int[] jogar(int[][] tabuleiro) { return new int[]{1, 2}; }

ae usando a reflexão para essa classe faço assim:

... Class classe = classLoader.loadClass("Jogador"); jog = classe.newInstance(); int[][] matrix = new int[3][3]; Method jogar = classe.getMethod("jogar", matrix.getClass()); //Erro nessa linha int[] a = (int[]) jogar.invoke(jog, matrix);

como o parametro é um int[][], que Class eu tenho que colocar no lugar de matrix.getClass()?
Ou vou ter que usar o tipo Object?

Obrigado.

 Class classe = classLoader.loadClass("Jogador");  
 jog = classe.newInstance();  
 int[][] matrix = new int[3][3];  
 Method jogar = classe.getMethod("jogar", matrix.getClass()); //Erro nessa linha  
 int[] a = (int[]) jogar.invoke(jog, matrix);

Que erro que dá? (Dica - eu aconselharia usar
Method jogar = classe.getMethod(“jogar”, new Class<?>[]{matrix.getClass()});
por via das dúvidas.

na verdade o erro tá dando na linha de baixo, mas acho que o problema está na linha indicada.

O erro é:
SEVERE: null
java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)

Ora, ora, ora, você teria de fazer:

Class classe = classLoader.loadClass("Jogador");  
jog = classe.newInstance();  
int[][] matrix = new int[3][3];  
Method jogar = classe.getMethod("jogar", matrix.getClass()); //Erro nessa linha  
int[] a = (int[]) jogar.invoke(jog, new Object[]{matrix}); 

Isso é porque o compilador se confundiu um pouco e se você fizer isso que eu lhe indiquei ele não se confunde mais.

Deu certo.

Muito obrigado.