java中的 可变参数
Posted gaoyang666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的 可变参数相关的知识,希望对你有一定的参考价值。
可变的参数类型,也称为不定参数类型。英文缩写是varargus,还原一下就是variable argument type。通过它的名字可以很直接地看出来,这个方法在接收参数的时候,个数是不定的。
public class TestVarArgus
public static void dealArray(int... intArray)
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
public static void main(String args[])
dealArray();
dealArray(1);
dealArray(1, 2, 3);
输出的是
1
1 2 3
通过main方法里的调用,可以看出来这个可变参数既可以是没有参数(空参数),也可以是不定长的。编译器会在悄悄地把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这是个实参个数可变的方法。代码:
dealArray(); //dealArray(int[] intArray);
dealArray(1); //dealArray(int[] intArray1);
dealArray(1, 2, 3); //dealArray(int[] intArray1, 2, 3);
可变参数是兼容数组类参数的,但是数组类参数却无法兼容可变参数。
public class TestVarArgus
public static void dealArray(int... intArray)
for (int i : intArray)
System.out.print(i +" ");
System.out.println();
public static void main(String args[])
int[] intArray = 1, 2, 3;
dealArray(intArray); //通过编译,正常运行
- 在方法中定义可变参数后,我们可以像操作数组一样操作该参数;
- 如果该方法除了可变参数还有其它的参数,可变参数必须放到最后;
- 调用使用了可变参数的方法时:
a. 可以不写参数,即传入空参;
b. 可以直接在里边写入参数,参数间用逗号隔开;
c. 可以传入一个数组; - 拥有可变参数的方法可以被重载,在被调用时,如果能匹配到参数定长的方法则优先调用参数定长的方法。
以上是关于java中的 可变参数的主要内容,如果未能解决你的问题,请参考以下文章