Java 1.5 增加了可变参数之后,为了兼容以前的数组参数类型,在将数组传给方法的时候,Java会将数组拆成一个个元素然后依次把元素传给数组,也就是
private static void invoke(int[] nums) {
System.out.println("Arrays");
}
这个方法中的参数会执行类似可变参数的执行方式int ... num
当程序中有两个方法,一个只有一个参数,另一个是可变参数的时候,如下程序[code=java]package cn.itcast.heima
public class OverloadVarargs
{
public void test(String msg)
{
System.out.println("只有一个字符串参数的test方法 ");
}
//因为前面已经有了一个test方法,test方法里有一个字符串参数。
//此处的长度可变形参里不包含一个字符串参数的形式
public void test(String... books)
{
System.out.println("*******形参长度可变的test方法****** ");
}
public static void main(String[] args)
{
OverloadVarargs olv = new OverloadVarargs();
//下面两次调用将执行第二个test方法
olv.test();
olv.test("aa" , "bb");
//下面将执行第一个test方法
olv.test("aa");
//下面将执行第二个test方法
olv.test(new String[]{"aa"});
}
}[/code] |