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

Java数组可变长参数详解

2018-02-01 15:42 302 查看
在java5中提供了可变长参数,也就是在方法中一个可变长参数可以代表同一类型的多个参数(数组);变长参数使用String...str标识;


1.向可变长参数方法传递多个参数

package extensions;

public class ParamVar {

public static void print(String...str) {
for(String s:str) {
System.out.println(s);
}
}
public static void main(String[] args) {
print("12","12");
}
}


2.可变长参数不能为空(向可变长参数传递null)

package extensions;

public class ParamVar {

public static void print(String...str) {
for(String s:str) {
System.out.println(s);
}
}
public static void main(String[] args) {
print(null);
}
}


3.向可变长参数传递一个数组

package extensions;

public class ParamVar {

public static void print(String...str) {
for(String s:str) {
System.out.println(s);
}
}
public static void main(String[] args) {
print(new String[] {"sdf", "sfd","sdff"});
}
}


4.调用方法是如果即可以和固定参数方法匹配也可以和可变长参数匹配,那么就调用固定参数方法:

package extensions;

public class ParamVar {

public static void print(String...str) {
for(String s:str) {
System.out.println(s);
}
}
public static void print(String str) {
System.out.println("------------------");
}
public static void main(String[] args) {
print("s");
}
}


5.调用的方法可以和两个可变长参数方法匹配,那么就会出现异常,编译就不能够通过

package extensions;

public class ParamVar {

public static void print(String...str) {
for(String s:str) {
System.out.println(s);
}
}

c400
public static void print(String str, String...str1) {
System.out.println("------------------");
}
public static void main(String[] args) {
print("s");
}
}


6.一个方法只能有一个可变长参数,并且这个可变长参数必须放置在参数末尾;

7.看如下代码

package extensions;

public class ParamVar {

public static void print(String s, String... ss) {
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
}

public static void main(String[] args) {

print("");
print("aaa");
print("aaa", "bbb");
}
}


输出结果:

bbb
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: