可能重复:
Calling a method named “string” at runtime in Java and C
我需要能够调用一个函数,但函数名存储在一个变量中,这是可能的。 e.g:
public void foo ()
{
//code here
}
public void bar ()
{
//code here
}
String functionName = "foo";
//我需要根据functionName
调用该函数Anyhelp会很棒,谢谢
答案 0 :(得分:5)
是的,您可以使用反射。但是,还要考虑 Effective Java 2nd Edition,Item 53:Prefer接口到反射。如果可能的话,请改用接口。在一般应用程序代码中很少真正需要反射。
答案 1 :(得分:3)
代码的主要部分是
String aMethod = "myMethod";
Object iClass = thisClass.newInstance();
// get the method
Method thisMethod = thisClass.getDeclaredMethod(aMethod, params);
// call the method
thisMethod.invoke(iClass, paramsObj);
答案 2 :(得分:1)
使用反射。
这是example
答案 3 :(得分:-1)
使用reflection API。像这样:
Method method = getClass().getDeclaredMethod(functionName);
method.invoke(this);