Hello World

吞风吻雨葬落日 欺山赶海踏雪径

0%

java可变参数

java可变参数讲解

1、可变长参数方法的定义

使用…表示可变长参数,例如

1
2
3
print(String... args){ 
...
}

2、可变长参数的方法的调用

调用的时候可以给出任意多个参数

1
2
3
4
5
print("hello");

print("hello","lisi");

print("hello","张三");

3、注意事项

3.1 在调用方法的时候,如果能够和固定参数的方法匹配,也能够与可变长参数的方法匹配,则选择固定参数的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
   public static void main(String[] args) {
printf("kan ","lian ","hui ");
printf("kan ","hui ");

}

public static void printf(String ...strings ){

StringBuilder s = new StringBuilder();
for(String x : strings){
s.append(x);
}
System.out.println("1." +s.toString());
}

public static void printf(String str1,String str2 ){

StringBuilder s = new StringBuilder();
s.append(str1);
s.append(str2);
System.out.println("2." +s.toString());
}

3.2 如果要调用的方法可以和两个可变参数匹配,则出现错误

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public static void main(String[] args) {
printf("kan ","lian ","hui ");
printf("kan ","hui ");

}

public static void printf(String ...strings ){

StringBuilder s = new StringBuilder();
for(String x : strings){
s.append(x);
}
System.out.println("1." +s.toString());
}

public static void printf(String str1,String str2 ){

StringBuilder s = new StringBuilder();
s.append(str1);
s.append(str2);
System.out.println("2." +s.toString());
}

public static void printf(String str1,String ... strings ){

StringBuilder s = new StringBuilder();
s.append(str1);
for(String x : strings){
s.append(x);
}
System.out.println("3." +s.toString());
}

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