Chamando metodo por string

6 respostas
D

Ola pessoal…
Qual a melhor maneira de estar invocando um metodo a partir de uma string… o usuario me envia uma string contendo o nome do metodo a ser chamado…

Valeu!!!
Daniel…


www.nerd.com.br
peça suas pizzas e dvds on-line.

6 Respostas

M

num switch?

D

a ideia eh nao utilizar condicoes…
e sim receber uma string, verificar se existe um metodo com aquele nome e invocala, caso nao existe gerar uma exception…

R

Olá Daniel!!

Não apenas a melhor, como eu acho, a única maneira, é se utilizar da API de reflexão do JAVA.

Quando você faz uma chamada Class.forName(“pacote.Classe”), por exemplo, está chamando uma classe a partir de uma String.

Procure tutoriais sobre reflexão de objetos ou se vc tiver o Core Java, ele tem uns exemplos legais.

Um exemplo bem fácil é esse:
(não compilei, é apenas o espírito da coisa)

public void acessaMetodo (Object object,String metodo)

{

Class   objClass   = object.getClass();

Object  objObject =  object;
Class[]  parameteros = new Class[1];
      parametros[0] = Integer;

      Method objMethod = objClass.getDeclaredMethod(metodo,parametros)

}

Abraços!

M

cara, tu pode tentar algo com refletion… tem pacote disso ai no tiger… mas eu nao faço nem idéia de como funfa… na ultima Mundo Java tem uns exemplos

D

Tenta assim:

Class.forName("NomeDaClasse").getMethod("método", null).invoke(this,null);
D

Valeu pessoal, resolvi com reflection !!! alias um belo recurso inclusive para criar metodos dinamicamente…

Obrigado!
Daniel Bertini


nerd.com.br
peca suas pizzas ou alugue seus filmes online…

Criado 25 de fevereiro de 2005
Ultima resposta 25 de fev. de 2005
Respostas 6
Participantes 4