我正在尝试编写一个通用代码,以便我可以在运行时使用不同数量和类型的参数调用方法。我可以使用从文件中读取的类和不同的方法,以及要传递给该特定方法的参数。
所以,这是一个包含不同类型值的对象数组 -
Object[] args = new Object[]{"aString", 1, true};
/* 基于 Object java.lang.reflect.Method.invoke(Object obj, Object... args) ,我写了如下方法 */
//"executingMethod" 引用了要执行的方法,可以从 Class.forName("ClassName").getDeclaredMethods(); 并为特定的方法遍历它。
执行Method.invoke(methodClassObject, args); //显然它不会执行,因为在运行时它不知道(不能向下转换)参数“类型”。
我不想在 executionMethod.invoke(..) 中传递 args[0]、args[1]、args[2],因为在某些情况下,参数的数量可能会有所不同。
有什么建议吗?