zoukankan      html  css  js  c++  java
  • [集合]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[] intArray{1});  
    dealArray(1, 2, 3); //dealArray(int[] intArray{1, 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);  //通过编译,正常运行  
        }  
    } 
    
    1. 在方法中定义可变参数后,我们可以像操作数组一样操作该参数;
    2. 如果该方法除了可变参数还有其它的参数,可变参数必须放到最后;
    3. 调用使用了可变参数的方法时: 
      a. 可以不写参数,即传入空参; 
      b. 可以直接在里边写入参数,参数间用逗号隔开; 
      c. 可以传入一个数组;
    4. 拥有可变参数的方法可以被重载,在被调用时,如果能匹配到参数定长的方法则优先调用参数定长的方法。
  • 相关阅读:
    Nginx配置文件nginx.conf中文详解
    Linux安装nginx
    熊猫TV游戏直播教程-OBS篇
    Mac下MySQL卸载方法
    sphinx 1.10-实时索引 api
    freebsd 国内相当快的ports源地址
    Springboot框架中如何读取位于resource资源中的properties配置文件,并将配置文件中的键对应的值赋值到目标bean中?
    分析Jedis源码实现操作非关系型数据库Redis
    分析线程池源码测试线程池
    socket简单示例实现从服务器拷贝文件到客户端
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/11196361.html
Copyright © 2011-2022 走看看