专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java可变长参数使用的注意事项

Java可变长参数使用的注意事项

更新时间:2020-05-21 15:16:26 来源:动力节点 浏览1866次


    如果要调用的方法可以和两个可变参数匹配,则出现错误,例如下面的代码:


    packagecom;


    //这里使用了静态导入


    importstaticjava.lang.System.out;


    publicclassVarArgsTest1{


    publicvoidprint(String...args){


    for(inti=0;i<args.length;i++){


    out.println(args[i]);


    }


    }


    publicvoidprint(Stringtest,String...args){


    out.println("----------");


    }


    publicstaticvoidmain(String[]args){


    VarArgsTest1test=newVarArgsTest1();


    test.print("hello");


    test.print("hello","alexia");


    }


    }


    对于上面的代码,main方法中的两个调用都不能编译通过,因为编译器不知道该选哪个方法调用,如下所示:


Java可变长参数使用的注意事项


    3.3一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数


    以下两种方法定义都是错误的。


    publicvoidtest(String...strings,ArrayListlist){


    }


    publicvoidtest(String...strings,ArrayList...list){


    }


    4.可变长参数的使用规范


    4.1避免带有可变长参数的方法重载:如3.1中,编译器虽然知道怎么调用,但人容易陷入调用的陷阱及误区


    4.2别让null值和空值威胁到变长方法,如3.2中所示,为了说明null值的调用,重新给出一个例子:


    packagecom;publicclassVarArgsTest1{


    publicvoidprint(Stringtest,Integer...is){


    }


    publicvoidprint(Stringtest,String...args){


    }


    publicstaticvoidmain(String[]args){


    VarArgsTest1test=newVarArgsTest1();


    test.print("hello");


    test.print("hello",null);


    }


    }


    这时会发现两个调用编译都不通过:


Java可变长参数使用的注意事项


 以上就是动力节点java培训机构的小编针对“Java可变长参数使用的注意事项”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>