如何从存储在Variable中的字符串调用Java函数

时间:2010-06-14 15:25:31

标签: java reflection function-call

  

可能重复:
  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会很棒,谢谢

4 个答案:

答案 0 :(得分:5)

是的,您可以使用反射。但是,还要考虑 Effective Java 2nd Edition,Item 53:Prefer接口到反射。如果可能的话,请改用接口。在一般应用程序代码中很少真正需要反射。

另见

相关问题

答案 1 :(得分:3)

轻松完成反射。一些示例herehere

代码的主要部分是

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);