Java 在运行时获取函数名并执行

Java 在运行时获取函数名并执行,java,Java,要在运行时执行函数,从运行时获得哪个函数名: public static void callClassname() throws Exception { String[] getExecute =getInputdata.getEligibleColoumn(); for(int i=0 ; i < getExecute.length ; i++) { getExecute[i] = getExecute[i].concat("()");String

要在运行时执行函数,从运行时获得哪个函数名:

public static void callClassname() throws Exception
{
    String[] getExecute =getInputdata.getEligibleColoumn();
    for(int i=0 ; i < getExecute.length ; i++)
    {
        getExecute[i] = getExecute[i].concat("()");String test = "classname." .concat(getExecute[i]);
        System.out.println("Test Passed:" + test);
    }
}
public static void callClassname()引发异常
{
字符串[]getExecute=getInputdata.getEligibleColoumn();
for(int i=0;i

在上面的代码测试中,将给出结果
classname.functionname()
。我想执行它或调用它。你能帮我怎么做吗,或者其他更好的方法?请推荐。

解决此问题和调用实例方法的最佳方法是使用Java反射API

解决此问题和调用实例方法的最佳方法是使用Java反射API

您需要的是在运行时将字符串转换为代码,您可以使用BeanShell来实现这一点

您可以从这里下载:

您还可以查看Java编译器API:


您需要的是在运行时将字符串转换为代码,您可以使用BeanShell来实现这一点

您可以从这里下载:

您还可以查看Java编译器API:


所有操作都是在运行时执行的。如果您在主方法或测试注释中调用了此函数,则此代码将始终运行,如果没有,则我看不到执行此操作的方法,
Classname.function()
仅适用于静态函数。您可以保留数字或分配整数来表示方法并适当地调用它们。所有操作都是在运行时执行的。如果您在主方法或测试批注中调用了此函数,则此代码将始终运行,如果没有,则无需考虑执行此操作的方法,
Classname.function()
仅适用于静态函数。您可以保留数字或指定整数来表示方法,并适当地调用它们。