Como chamar a função java da string armazenada em uma variável [duplicado
-
27-09-2019 - |
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
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