Chamando metodo por string

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.

num switch?

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…

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!

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

Tenta assim:


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

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…