一看到“fun(String ... strs)”就感觉写法很🐂,所以今天自己尝试一下,发现是一个很简单但确很实用的语法。所以凡事要亲身实践。
Java的可变长参数本质上就是一个动态创建的数组,把参数名当做一个数组处理即可
可变长
eg:
strs就相当于一个字符串数组,可当做字符串数组去处理
public String fun(String ... strs){
... ...
}
/**
* @author cxxb
*/
public class CanVarialeParam {
public static void main(String[] args) {
CanVarialeParam canVarialeParam = new CanVarialeParam();
int sum = canVarialeParam.sum(1, 2, 3, 4);
System.out.println(sum);
String str1 = canVarialeParam.appendStr("Hello", ",", "world!");
System.out.println(str1);
}
public int sum(int... arr) {
int len = arr.length;
int sum = 0;
for (int i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum;
}
public String appendStr(String... strings) {
int len = strings.length;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < len; i++) {
sb.append(strings[i]);
}
return sb.toString();
}
}
个别定长 + 可变长
一个方法只能有一个可变长参数,并且这个可变长参数必须是该方法的最后一个参数
public class CanVariableArray {
public static void main(String[] args) {
test(1, 2, 3);
}
public static void test(int arg1, int... arg2) {
// 1
System.out.println(arg1);
System.out.println("length:" + arg2.length);
// 2 3
for (int i = 0; i < arg2.length; i++) {
System.out.print(arg2[i] + " ");
}
}
}
网友评论