Reflexao por um objeto ja istanciado

7 respostas
montano

Boa tarde, estou tentando fazer uma reflexao de um method por um objeto ja existente.

private int calculaQuebras(Det det) {
	double quebras = 0;       		
	Class<Prod> classeGenerica = (Class<Prod>) det.getProd().getClass();			
	Method metodo = classeGenerica.getMethod("getCProd");
        Object invoke = metodo.invoke(det.getProd());	        
	String invoke2 = metodo.toString();
}

O conteudo do Object invoke é 1.

Obrigado

7 Respostas

Eric_Yuzo

Passe os tipos dos parâmetros no getMethod:

Method metodo = classeGenerica.getMethod("getCProd", Integer.class);
montano

E se o metodo nao recebe parametros?

Marky.Vasconcelos

montano:
Boa tarde, estou tentando fazer uma reflexao de um method por um objeto ja existente.

private int calculaQuebras(Det det) {
	double quebras = 0;       		
	Class<Prod> classeGenerica = (Class<Prod>) det.getProd().getClass();			
	Method metodo = classeGenerica.getMethod("getCProd");
        Object invoke = metodo.invoke(det.getProd());	        
	String invoke2 = metodo.toString();
}

O conteudo do Object invoke é 1.

Obrigado

E o que acontece?

Eric_Yuzo

Aí não precisa. Mas na hora do invoke também não poderia passar o parâmetro.

montano

Uhmmm, beleza eu pensei que eu tinha que passar o objeto que vai invocar o metodo dentro do invoke.

Valeu pessoal

Eric_Yuzo

Isso mesmo, o primeiro parâmetro é o objeto que está invocando o método.

Na verdade está certo o que você fez. Eu que viajei por causa do invoke ser 1, por ser primitivo, acabei associando com parâmetro. Eu não tinha percebido que invoke era o nome da variável. Falha minha.

Marky.Vasconcelos

Seu código está correto, qual é o problema dele?

Criado 19 de janeiro de 2011
Ultima resposta 19 de jan. de 2011
Respostas 7
Participantes 3