Pergunta

Possível duplicata:
Chamando um método chamado "String" no tempo de execução em Java e C

Eu preciso poder chamar uma função, mas o nome da função é armazenado em uma variável, isso é possível. por exemplo:

public void foo ()
{
     //code here
}

public void bar ()
{
     //code here
}

String functionName = "foo";

// eu preciso chamar a função com base no que é o nome da função

Anyhelp seria ótimo, obrigado

Foi útil?

Solução

Sim, você pode, usando a reflexão. No entanto, considere também Java 2ª edição eficaz, Item 53: Prefira interfaces à reflexão. Se possível, use interfaces. A reflexão raramente é verdadeiramente necessária no código de aplicativo geral.

Veja também

Perguntas relacionadas

Outras dicas

Facilmente feito com reflexão. Alguns exemplos aqui e aqui.

Os principais pedaços de código sendo

String aMethod = "myMethod";

Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);

Use reflexão.

Aqui está um exemplo

Com o reflexão API. Algo assim:

    Method method = getClass().getDeclaredMethod(functionName);
    method.invoke(this);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top