Chamada de método em tempo de execução

5 respostas
soaresinfo

Eu queria saber como eu faço para chamar um método de minha classe que está executando, digitando ele numa JOptionPane por exemplo:
eu digito setNome("soaresinfo") na caixa de dialogo, e meu programinha tem que pesquisar este metodo e executa-lo…
qualquer duvida :wink:

5 Respostas

Daniel_Quirino_Olive

Hmmm. Que tal usar reflection?

Class clazz = Class.forName("x.y.z.MinhaClasse");
    Class[] parameterTypes = new Class[2];// supondo que o tal método suporte 2 parâmetro...
    // os parâmetros aceitos são do tipo int e String;
    parameterTypes[0] = Integer.TYPE;
    parameterTypes[0] = Class.forName("java.lang.String");
    
    java.lang.reflect.Method m = clazz.getMethod("meuMetodo", parameterTypes);

    MinhaClasse myClass = new MinhaClasse();
    Object[] args = new Object[2];
    args[0] = new Integer(10);
    args[1] = "Daniel é legal";
    //executando a parada...
    Object returnObject = m.invoke(myClass, args);
soaresinfo

valeu, acho que é isso mesmo…
mas tem como passar a referencia da classe em execução?

Daniel_Quirino_Olive

“soaresinfo”:
valeu, acho que é isso mesmo…
mas tem como passar a referencia da classe em execução?

Yes, sir.

soaresinfo

Pelo seu exemplo me pareceu que eu criaria uma nova instancia da minha classe em execução, quero saber se ele pega a referencia da minha classe em execução e use os métodos com os valores correntes…
Como faço para passar esta referência?
Dessa forma é mais fácil testar os métodos em desenvolvimento, mesmo complicando um pouquinho mais, pelo menos do meu ponto de vista…

Rafael_Steil
meuObjeto.getClass().getMethod(...)

Rafael

Criado 4 de maio de 2004
Ultima resposta 4 de mai. de 2004
Respostas 5
Participantes 3