java可变参数

来源:互联网 发布:淘宝描述不符退款 拆解 编辑:程序博客网 时间:2024/06/04 19:20

1、嘛玩意?可变参数?您还别说,java里面必须的有,看下面的例子。

public class SayHello {public void sayMes(String... strs){for(String temp: strs) {System.out.print(temp + " ");}System.out.println("说完了");}public static void main(String args[]) {SayHello sHello = new SayHello();sHello.sayMes(); //无参调用sHello.sayMes("hello"); //一个参数sHello.sayMes("wang", "yuan", "wai");//多个参数}}


输出结果:

说完了hello 说完了wang yuan wai 说完了

2、看完例子,看疗效?

String... strs, 这就是可变参数。 可以不传参数调用sayMes方法,也可以传一个,或者传多个参数调用


3、可变参数的底层实际上就是数组对象,但是如果改成String[] strs,就没有可变参数灵活了,你调用该方法时,就必须传入一个String[]对象。想实现例子1的效果,就得费劲了!!

public class SayHello {public void sayMes(String[] strs){if(strs != null) {     for(String temp: strs) {     System.out.print(temp + " ");    }}System.out.println("说完了");}public static void main(String args[]) {SayHello sHello = new SayHello();sHello.sayMes(null);sHello.sayMes(new String[]{"hello"});sHello.sayMes(new String[]{"wang", "yuan", "wai"});}}

输出结果:

说完了hello 说完了wang yuan wai 说完了

4、总结


a、可变参数的底层是数组对象,很多事情,编译器给你干了

b、语法就是 类型... 空格 变量名

c、可变参数必须位于方法参数的最后一个哦

e、凡是参数是可变参数的,可以直接传数组对象

0 0