本帖最后由 吴硕 于 2013-2-24 19:57 编辑
在Java1.4中还没有可变参数,所以Method的invoke方法为这样:
Object invoke(Object obj, Object[] args)
其中args表示参数列表,所以args中的每一个元素为一个参数
到了Java1.5有了可变参数,Method的invoke方法变成了这样:
Object invoke(Object obj, Object... args)
就不需要在传入Object数组了
但使用反射调用main方法时,如下:
mainMethod.invoke(null, new String[]{"2", "3", "4"});
传入了一个String类型的数组,就与1.4的调用方式吻合了,因为向下兼容的特性,并不会把args作为一个参数,而是会把args中的每个元素作为一个参数(就像1.4中处理的那样) |