如果在定义方法时,在最后一个形参的类型后增加三个点,则表明可以接受多个参数值,多个参数值被当做数组传入。形参个数可变的参数本质就是一个数组参数,也就是说下面两个方法签名的效果完全一样:public static void test(int a, String... books)和public static void test(int a, String[] books)。
因此调用包含一个长度可变形参的方法时,这个长度可变的形参既可以传入多个参数,也可以传入一个数组。这两种形式都包含了一个名为books的形参,在两个方法的方法体内都可以把books当成数组处理但区别是调用两个方法时存在差别,对于以可变形参的形式定义的方法,调用方法时更加简洁,如举例所示,但如果采用数组形参来声明方法,调用时则必须传给该形参一个数组。
最后还要指出的是,数组形式的形参可以处于形参列表的任意位置,但个数可变的形参只能处于形参列表的最后。也就是说,一个方法中最多只能有一个长度可变的形参。
示例
网友评论