Capturar o tipo de variavel representado por uma string

4 respostas
pedrohms

olá pessoal, tudo bem. Estou com um pequeno problema, estou criando uma aplicacao que precisa acessar devido metodo de uma classe object com o invoke do reflect mas como parametro preciso do tipo real do parametro, e estou com dificuldades de fazer essa distincao, por que o parametro é um pedaco de uma string. Vai abaixo um trexo da funcao:

response = (String)metodos[i].invoke(principal, parametros);

onde parametros e uma array de objetos.

4 Respostas

Guilherme_Gomes

Isso que vc fez não funciona? Qual o problema?
Vc precisa do tipo real como parametro ou como retorno? Não entendi o problema…

drsmachado

Se precisa dos tipos de parâmetros do método, obtenha-os com a invocação do método getParameterTypes().

pedrohms

Obrigado pela resposta pessoal, mas o problema e o seguinte: Se os parametros do metodo real da classe for de tipo inteiro e string se eu enviar string e string da erro, o invoke nao aceita um tipo que nao seja o correto, ele nao da cast nos parametros. No meu caso e mais complicado porque os parametros que recebo nessa variavel vem de uma resposta em json ou xml que sào valores em string.

drsmachado

Então, camarada.
Invocando o método getParameterType() você identifica quais os tipos de parâmetro, assim, pode forçar o cast (um switch/case ou uma porrada de ifs para isto) e então, popular o array de Object que irá ser passado como parâmetro.

Criado 25 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 4
Participantes 3