我必須爲家庭作業實現一個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