【发布时间】:2012-02-21 08:30:02
【问题描述】:
我必须为家庭作业实现一个 API,而我的导师使用我不熟悉的符号表示 API 中的一种方法(基于 javadoc)。
public void method(String... strs);
“...”是什么意思?后来看起来我需要使用单个字符串实际参数以及多个字符串实际参数来调用相同的方法...
Java 没有可选参数(据我所知),所以我在这里有点困惑......
【问题讨论】:
我必须为家庭作业实现一个 API,而我的导师使用我不熟悉的符号表示 API 中的一种方法(基于 javadoc)。
public void method(String... strs);
“...”是什么意思?后来看起来我需要使用单个字符串实际参数以及多个字符串实际参数来调用相同的方法...
Java 没有可选参数(据我所知),所以我在这里有点困惑......
【问题讨论】:
是的,这意味着您可以将任意字符串作为此方法的参数。
对于您的方法:
public void method(String... strs);
你可以这样称呼它:
method(str)
method(str1, str2)
method(str1,str2,str3)
任何参数都可以。换句话说,它是:
public void method(String[] str);
【讨论】:
它被称为可变参数; http://docs.oracle.com/javase/6/docs/technotes/guides/language/varargs.html
这意味着您可以向方法传递任意数量的参数(甚至为零)。
在该方法中,参数将自动放入指定类型的数组中,您可以使用该数组访问各个参数。
【讨论】:
参见java optional parameters:从 Java 5 开始,Java 支持可变数量的参数。
【讨论】:
它被称为ellipsis,这意味着该方法可以将多个Strings 作为其参数。
请参阅:Oracle 网站上的 The Java tutorial on passing arguments。
【讨论】: