传递值列表作为参数的函数

问题描述:

林通过使用反射上的Java类的工作,我有不同类型的对象的列表:传递值列表作为参数的函数

public List<Object> MethodSignatureObjects 

和,我需要通过使用如下因素逻辑调用方法:

Class<?> c = Class.forName("class name"); 
    Method method = c.getDeclaredMethod ("method name", parameterTypes) 
    method.invoke (objectToInvokeOn, params) 

有没有什么办法可以把载有关于getDeclaredMethod MethodSignatureObjects的对象,我的意思是,像这样:

Method method = c.getDeclaredMethod (methodName, param1.class, param2.class, ..); 

其中参数1,参数2,参数n ....来自方法签名对象

我真的appreaciate任何意见。

非常感谢。

+0

请出示你试图调用该方法的实际签名。 –

+0

请确保在发布代码行时缩进至少4个空格或使用{}图标。你的第一行使用'List ',但是StackOverflow没有将它解释为代码,然后认为''是一个HTML标记,并且没有显示出来。 – ajb

你不能传递一个名单,但阵列的方法

// List<Object> methodSignatureObjects 

int size = methodSignatureObjects.size(); 
Class<?>[] asArray = new Class<?>[size]; 
for (int i = 0; i < size; i++) { 
    asArray[i] = methodSignatureObjects.get(i).getClass(); 
} 

Class<?> c = Class.forName("class name"); 
Method method = c.getDeclaredMethod("method name", asArray); 
method.invoke (objectToInvokeOn, params)