我想用java反射调用具有可变参数的方法。下面是它承载的方法的类:如何在java中使用反射调用带有可变参数的方法?
public class TestClass {
public void setParam(N ... n){
System.out.println("Calling set param...");
}
下面是调用代码:
try {
Class<?> c = Class.forName("com.test.reflection.TestClass");
Method method = c.getMethod ("setParam", com.test.reflection.N[].class);
method.invoke(c, new com.test.reflection.N[]{});
我越来越抛出:IllegalArgumentException在“错误的参数数目”的形式,在最后一行在那里我调用invoke。不知道我做错了什么。
任何指针将不胜感激。
- 感谢
试过,没有投到'(对象)' - 我得到了和你一样的异常。因此,只需添加演员(并正确的点号1),你会没事的。 – gorootde 2012-01-12 23:52:02
对,我错过了Object到Object []。万分感谢。 – Shamik 2012-01-12 23:57:23
@Shamik:如果你知道你想要调用的方法,可以使用dp4j来避免这种问题 – simpatico 2012-01-13 20:21:48