자바 가변인자는 자바 5부터 도입된 기능으로, 기존에는 매개변수 개수가 고정적이었으나 동적으로 지정해 줄 수 있는 기능이다.
가변인자는 메서드의 매개변수 선언에서 마지막 위치에 "타입... 변수명" 형태로 사용된다. 이때, 변수명은 개수가 가변적인 매개변수들을 배열로 받아줄 변수명으로 사용한다.
가변인자를 사용하는 메서드를 호출할 때, 개수가 가변적인 인자들을 쉼표로 구분하여 전달할 수 있다. 이때 전달된 인자들은 자동으로 배열로 묶어서 가변인자로 선언된 변수에 할당된다.
다음과 같은 메서드가 있다고 가정해보자.
public static void printNumbers(int... numbers) {
for(int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
}
printNumbers(1);
printNumbers(1, 2, 3);
printNumbers(1, 2, 3, 4, 5);
가변인자를 사용하면 입력 인자의 개수가 다양한 메서드를 쉽게 작성할 수 있게된다.