Pregunta

  

Duplicar posibles:
   Llamar a un método llamado “cadena” en tiempo de ejecución Java y C

Tengo que ser capaz de llamar a una función, pero el nombre de la función se almacena en una variable, es esto posible. por ejemplo:

public void foo ()
{
     //code here
}

public void bar ()
{
     //code here
}

String functionName = "foo";

// i necesidad de llamar a la función basada en lo que es functionName

anyhelp Sería muy bueno, gracias

¿Fue útil?

Solución

Sí, puede, utilizando la reflexión. Sin embargo, tenga en cuenta también A partir de Java 2ª edición, artículo 53: Prefiero interfaces para la reflexión . Si es posible, utilizar las interfaces en su lugar. La reflexión es raramente realmente se necesita en el código de aplicación general.

Ver también

preguntas relacionadas

Otros consejos

hace fácilmente con la reflexión. Algunos ejemplos aquí y aquí .

Las principales bits de ser código

String aMethod = "myMethod";

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

Uso reflexión.

Aquí hay un ejemplo

Con la reflexión API . Algo como esto:

    Method method = getClass().getDeclaredMethod(functionName);
    method.invoke(this);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top