传递值列表作为参数的函数
问题描述:
林通过使用反射上的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任何意见。
非常感谢。
答
你不能传递一个名单,但阵列的方法
// 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)
请出示你试图调用该方法的实际签名。 –
请确保在发布代码行时缩进至少4个空格或使用{}图标。你的第一行使用'List