您的位置:首页 > 编程语言 > Java开发

java可变参数

2016-06-21 22:21 337 查看
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、凡是参数是可变参数的,可以直接传数组对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: