JAVA5提出的新思想,基于新的for循環結構:for(String str : strList){ ... }所產生了一系列的新奇東東,包括范型Collection<Object> ,還有可變參數 等等
不過我覺得可能是Collection的范型支持先出現,然后才引入了這種迭代結構

可變參數倒是比其中一個較好玩的東西:
?1public?class?test_varargs?{
?2????public?static?void?varargs(String??str){
?3????/*?
?4????????這里str參數前面有三個.?表示str為可變參數
?5????????程序處理時隱式的把str看作是str[]
?6????????所以下面可以用處理數組的方法處理參數
?7????*/

?8????????for(String?strTmp:str){
?9????????????System.out.println("參數::"+strTmp);
10????????}

11????}
????
12????public?static?void?main(String[]?args)?{
13????????varargs("1:Hello","eqwe","ewq12123","ccccc");
14????}

15}

像上面的這樣,可變參數就是在普通的參數后面加上三個"."。

我沒有發現可變參數有什么太大的用處,在J2EE的框架開發中幾乎用不到,不過當有時候我們不確定參數到底有幾個時倒是可以用這種方式來代替以往傳遞一個數組的方式。

可變參數同時可以跟固定的參數混合使用。
但同時可變參數有一些限制:一個方法的參數中不能同時擁有2種類型的可變參數,也就是說:
public void foo(String ... str,Integer ... i)這樣是不行的