methodMain.invoke(null, new Object[]{new String[]{"111","222","333","444"}});这个方法调用后显示的是你上图中的
111、222、333、444
但你不小心在方法外面多加了一个输出,即:System.out.println(methodMain.invoke(null, new Object[]{new String[]{"111","222","333","444"}}));
经查文档中的Method中的方法invoke,文档中说明如下:
如果方法正常完成,则将该方法返回的值返回给调用者;如果该值为基本类型,则首先适当地将其包装在对象中。但是,如果该值的类型为一组基本类型,则数组元素不 被包装在对象中;换句话说,将返回基本类型的数组。如果底层方法返回类型为 void,则该调用返回 null。
由于你调用的是main方法,也就是void类型,最后就打印出null了。 |