public class invokeClassMainMethod {
public static void main(String[] args) throws Exception {
Method startClassMainMethod= Class.forName(args[0]).getMethod("main", String[].class);
startClassMainMethod.invoke(null,new String[]{"duancanmeng1","duancanmeng2","duancanmeng3"}); }
}
执行以上代码,会发现报IllegalArgumentException
提示: java.lang.IllegalArgumentException
说明传入方法参数的个数不对。
在备注处传入的参数为:new String[]{"duancanmeng1","duancanmeng2","duancanmeng3"},
startClassMainMethod.invoke(null,
new Object[]{new String[]{"duancanmeng1","duancanmeng2","duancanmeng3"}});
或者,直接把他强转为一个不是数组的参数,让程序无法进行拆散,这样传入的也是一个单独的参数,如下:
startClassMainMethod.invoke(null,
(Object)new String[]{"duancanmeng1","duancanmeng2","duancanmeng3"});