我想用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