黑马程序员_java可变参数

------- android培训java培训、期待与您交流! ----------

 

可变参数 :

可变的参数类型,也称为不定参数类型。英文缩写是varargus,还原一下就是variable argument type。通过它的名字可以很直接地看出来,这个方法在接收参数的时候,个数是不定的。那么好,现在就先来调用下这个方法。请看代码和输出:


  1. public class TestVarArgus {  
  2.     public static void dealArray(int... intArray){  
  3.         for (int i : intArray)  
  4.             System.out.print(i +" ");  
  5.           
  6.         System.out.println();  
  7.     }  
  8.       
  9.     public static void main(String args[]){  
  10.         dealArray();  
  11.         dealArray(1);  
  12.         dealArray(1, 2, 3);  
  13.     }  
  14. }  

输出:


  1. 1   
  2. 1 2 3  
  3. 通过main方法里的调用,可以看出来这个可变参数既可以是没有参数(空参数),也可以是不定长的。看到这里估计都能明白,这个不定长的参数其实和 数组参数挺像的。事实上,也确实是这么回事儿。编译器会在悄悄地把这最后一个形参转化为一个数组形参,并在编译出的class文件里作上一个记号,表明这 是个实参个数可变的方法。请看代码:


    1. dealArray(); //dealArray(int[] intArray{});  
    2.         dealArray(1); //dealArray(int[] intArray{1});  
    3.         dealArray(1, 2, 3); //dealArray(int[] intArray{1, 2, 3}
  4. 需要注意的是:从上面这两段代码可以看出来,可变参数是兼容数组类参数的,但是数组类参数却无法兼容可变参数。
  5. public class TestVarArgus {  
  6.     public static void dealArray(int count, int... intArray){  
  7.           
  8.     }  
  9.       
  10.     public static void dealArray(int... intArray, int count){//编译报错,可变参数类型应该作为参数列表的最后一项  
  11.           
  12.     }  
  13.       
  14.     public static void main(String args[]){  
  15.             
  16.     }  

  17. 这段代码说明了,可变参数类型必须作为参数列表的最后一项,而不能放在定长参数的前面。
------- android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值