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)这样是不行的