매개변수의 가변 인자 선언과 호출
메소드의 매개변수를 선언할 때 '가변 인자 선언'을 하면 전달되는 인자의 수에 제한을 두지 않을 수 있다.
public class Varags {
public static void showAll(String...vargs){
System.out.println("LEN : " +vargs.length);
for(String s : vargs)
System.out.print(s +'\t');
System.out.println();
}
public static void main(String[] args) {
showAll("Box");
showAll("Bx","Toy");
showAll("Box","Toy","Appple");
}
}
---------------------------------------------------------------------
LEN : 1
Box
LEN : 2
Bx Toy
LEN : 3
Box Toy Appple
vargs는 배열을 참조하고 있다. 때문에 length에 접근하여 그 길이를 확인할 수 있다.
가변 인자 선언에 대한 컴파일러의 처리
public class VaragsBefore {
public static void showALl(String[] vargs){
System.out.println("LEN: "+vargs.length);
for(String s : vargs)
System.out.print(s + '\t');
System.out.println();
}
public static void main(String[] args) {
showALl(new String[]{"Box"});
showALl(new String[]{"Box","Toy"});
showALl(new String[]{"Box", "Toy", "Apple"});
}
}
-----------------------------------------------------------------
LEN: 1
Box
LEN: 2
Box Toy
LEN: 3
Box Toy Apple