日期:2014-05-20  浏览次数:20765 次

这种函数声明是什么意思:void test(String s, Object... args) {}
这种函数声明是什么意思:void   test(String   s,   Object...   args)   {}
Object后面跟三个 ". "是什么意思啊?

------解决方案--------------------
void test() 参数个数不定,但至少还有String s,后面的参数Object可以0或多个,但有个上限。
------解决方案--------------------
不定参
1.5新增的
将下面2个方法合二为一
void test(String s, Object args) {}
void test(String s, Object[] args) {}


不过Object[] 应该不存在这种问题
Object[]也是Object
------解决方案--------------------
注意,这种声明不是JDK1.5的新功能,并且
void test(String s, Object...args) {}
void test(String s, Object[] args) {}
这两种定义根本就是两码事,是完全不同的概念

======================================================
这种声明就是Java 1.5的新特性

两种定义虽然不是同一回事,但传递进来的Object...参数确实被放进了一个Object[]数组中

所以功能上两者是一样的,只不过调用的格式不一样而已