public Object invoke(Object obj, Object... args) 那三点是怎么回事?

我在看Method源码的时候看到这样一个方法,但是,我实在是搞不懂Object后面的三点(...)是有什么用,或者是什么意思!?

从Java 5开始,Java语言对方法参数支持一种新写法,varargs(可变长度参数列表),其语法就是类型后跟...,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。
例如说public static void main(String[] args)就可以写成public static void main(String... args)。又例如说java.util.Arrays类上的public static List asList(T... a),在调用时可以是:
[code="java"]Arrays.asList(1, 2, 3)[/code]
也可以是
[code="java"]Arrays.asList(new Integer[] { 1, 2, 3 })[/code]

Method.invoke()的参数使用了varargs,意味着调用该方法时参数会被数组包装起来。有兴趣的话可以读下这帖:[url]http://www.iteye.com/topic/477934[/url]

补充楼上一点,java的可变参数必须放在方法声明参数列表的最后一项。