enum 클래스와 마찬가지로, 버전 업데이트가 되면서 사용되는 개념으로, 자바에서는 파라미터의 갯수가 다르면 다른 메서드로 인식하기 때문에 동일한 기능을 하지만 파라미터가 가변적으로 변경되는 경우, 오버로딩(Overloading)한다.
오버로딩은 파라미터 개수에 맞춰 메서드가 계속 늘어나는 구조인데, 가변인자를 사용하면 동적으로 파라미터(parameter)를 받을 수 있다.
... 붙여주면 된다.// 매개변수 없이 호출
test(); // 출력 X
// 매개변수 담아 호출
test("A", "B"); // A B 출력
// 배열객체에 담아 호출
test(new String[] {"A", "B", "C"}); // A B C 출력
public static void test(String... param) {
// 배열로 파라미터 값을 할당
String[] array = param;
// 배열객체를 반복해서 출력
for (String str : param) {
System.out.println(str);
}
}
public static void test(int num, String... param) {
String[] array = param;
for (String str : param) {
System.out.println(str);
}
}