我必须为家庭作业实现一个API,并且我的教师使用了API(基于javadoc的)中某个方法中不熟悉的符号。String中的String ...参数
public void method(String... strs);
'...'是什么意思?它后来看起来像我需要调用同一个方法使用单个字符串的实际参数,以及多个字符串实际参数...
Java没有可选参数(据我所知),所以我这里有点困惑......
我必须为家庭作业实现一个API,并且我的教师使用了API(基于javadoc的)中某个方法中不熟悉的符号。String中的String ...参数
public void method(String... strs);
'...'是什么意思?它后来看起来像我需要调用同一个方法使用单个字符串的实际参数,以及多个字符串实际参数...
Java没有可选参数(据我所知),所以我这里有点困惑......
它被称为可变参数; http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html
这意味着您可以将任意数量的参数传递给该方法(甚至为零)。
在该方法中,参数将自动放入指定类型的数组中,用于访问各个参数。
它被称为ellipsis,这意味着该方法可以将多个String
s作为它的参数。
请参阅:Oracle网站上的The Java tutorial on passing arguments。
请参阅java optional parameters:从Java 5开始,Java支持可变数量的参数。
是的,这意味着您可以将任意字符串作为该方法的参数。
对于你的方法:
public void method(String... strs);
你可以称其为:
method(str)
method(str1, str2)
method(str1,str2,str3)
任何没有arugments会工作。在其他世界它是一个替代:
public void method(String[] str);
啊,感谢您的快速反应。我以前没有见过...非常好。 – 2012-01-28 21:59:54
我只是补充说这种类型的函数叫** variadic **:http://en.wikipedia.org/wiki/Variadic_function – amphibient 2013-10-10 20:36:39