我正在編寫一個示例應用程序來學習反射。我試圖調用從另一個類使用反射在一個類中的主要方法定義,但我得到無法使用反射調用主要方法 - IllegalArgumentException:參數類型不匹配
異常在線程「主」 java.lang.IllegalArgumentException異常:參數類型不匹配
查找下面我正在嘗試執行的代碼。
類從主要方法是調用
import java.lang.reflect.Method;
public class Invoker {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("com.nagpal.invokemainmethod.Invoked");
Method method = clazz.getMethod("main", new Class[] { String[].class });
Object[] params = new Object[4];
params[0] = "arg 1";
params[1] = "arg 2";
params[2] = "arg 3";
params[3] = "arg 4";
method.invoke(null, new Object[] { params });
}
類,其主要方法是調用
public class Invoked {
public static void main(String[] args) {
if (args.length < 3) {
throw new IllegalArgumentException();
}
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + args[i] + "]");
}
}
}