zoukankan      html  css  js  c++  java
  • Java可变参数Varargs

     J2SE 1.5中提供了Varargs机制,“Varargs”是“variable number of arguments”的意思,允许直接定义能和不定个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。只要在参数定义的括号里写上一个形参的“类型”与“参数名”之间加上三个连续的“.”(即“...”,英文里的句中省略号),就可以让它和不确定个实参相匹配。而一个带有这样
    的形参的方法,就是一个实参个数可变的方法。
       那么问题来了,如果这个函数的参数列表是已知的固定参数与可变参数的混合,那么如果继续使用单一的可变参数就会造成浪费。好在Varargs机制并不排斥其他固定实参,只是有两点需要注意。一是只有最后一个形参才能被定义成“能和不确定个实参相匹配”的可变形参,如果这个方法还有其它的形参,要把它们放到前面的位置上。由此造成了第二点:一个方法里只能有一个这样的可变形参。

    1.在具有可变长参数的方法中可以把参数当成数组使用,例如可以循环输出所有的参数值。


    2.在调用方法的时候,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则选择固定参数的方法。看下面代码的输出:

    myClass myy=new myClass();
    myy.my(1);          //输出hello,world
    myy.my(1,2,3);   //输出:1,2,3

    //调用方法时先调用固定方法:
    class myClass{
        public void my(int... a){
            for(int i:a){
            System.out.println(i);
            }
        }
        public void my(int a){
            System.out.println("hello,world");
        }
    }


    3.每个方法最多一个变长参数,并且该参数的位置是方法的的最后。

    public void print(String... args,Int num){}       错误写法
    public void print(String... args,Int... nums){}   错误写法

    public void print(Int num,String... args){}      正确写法


    4.不能让调用的方法可以与两个可变参数匹配。

  • 相关阅读:
    传说中的WCF(12):服务器回调有啥用
    传说中的WCF(11):会话(Session)
    传说中的WCF(10):消息拦截与篡改
    传说中的WCF(9):流与文件传输
    传说中的WCF(8):玩转消息协定
    传说中的WCF(7):“单向”&“双向”
    传说中的WCF(6):数据协定(b)
    传说中的WCF(5):数据协定(a)
    传说中的WCF(4):发送和接收SOAP头
    测试工作绝不仅限于点点点!
  • 原文地址:https://www.cnblogs.com/Downtime/p/7778519.html
Copyright © 2011-2022 走看看