Cómo llamar a la función de Java de cadena almacenada en una variable [duplicado]
-
27-09-2019 - |
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
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);