以通用方式调用具有不同参数的方法

时间:2012-06-29 07:36:44

标签: java

我试图编写一个通用代码,这样我就可以在运行时调用方法,使用不同的数字&参数类型。我有班级和班级我从文件中读取的不同方法,以及要传递给特定方法的参数。

所以,这是一个包含不同类型值的对象数组 -

Object [] args = new Object [] {“aString”,1,true};

/ *基于Object java.lang.reflect.Method.invoke(Object obj,Object ... args),我写了以下方法* /

//“executionMethod”引用要执行的方法,可以从Class.forName(“ClassName”)获取.getDeclaredMethods();并针对特定方法遍历它。

executionMethod.invoke(methodClassObject,args); //显然它不会执行,因为在运行时它不知道(不能转发)param“Type”。

我不想在executionMethod.invoke(..)中传递args [0],args [1],args [2],因为在某些情况下,参数的数量可能会有所不同。

有任何建议吗?

1 个答案:

答案 0 :(得分:0)

以下是处理该问题的一种方法:

创建以下界面

import java.util.ArrayList;
public interface ExecutableInterface {
    void executable(String methodName);
    String getExecutableMethod();
    void setParameters(ArrayList parameters);
    ArrayList getParameters();
}

现在,在要调用的类中,使其实现这些方法并使用可执行文件传递invokable方法并使用setParameter传递参数。

在运行时,您将获取这些值并调用返回getExecutableMethod的可执行方法。与参数相同。