String startingClassName=args[0];
//为主函数添加一个String类型参数,该参数是一个类名, main函数后面是一个数组类型的参数列表。arg[0]是第一个参数
Method mainMethod=Class.forName(startingClassName).getMethod("main",String[].class)
//通过通过类名获取字节码文件,通过反射获得mian()方法,
mainMethod.invoke(null,(Object)new String[]{"111","222","333"})
//Object invoke(Object obj, Object... args)
//对带有指定参数的指定对象调用由此 Method 对象表示的底层方法。
//就是说你通过哪个对象调用此方法,并且传入参数
这几句代码通过反射方式执行类中的main()方法 |