가변인자는 메서드에 가변적인 수의 인자를 전달할 수 있도록 하는 문법
메서드를 호출할 때 필요한 수만큼의 인자를 전달할 수 있으며, 넘어가는 인자들은 배열로 처리됨
가변인자는 메서드의 매개변수 선언에서 '타입... 변수명' 형태로 사용할수 있음
'타입'은 가변인자로 전달할 값이 데이터 타입이고, '변수명' 은 가변인자를 참조할 변수의 이름
- 가변인자를 사용한 메서드 예시
==========================================================================
public void printNumbers( int... numbers) {
System.out.println(message);
for (int num : numbers) {
System.out.print(num + " ");
}
System.out.println();
}
==========================================================================
- 가변인자 메서드 호출
==========================================================================
printNumbers("Numbers:", 1, 2, 3, 4, 5);
printNumbers("More numbers:", 10, 20, 30);
==========================================================================
- 가변인자로 넘어가는 값은 배열로 되어 있음, 값을 하나를 넘기던 여러개를 넘기돈 하나도 안넘기던 무조건 배열임
ex) int[] numbers
- 가변인자는 메서드에 최대 하나만 사용할수 있음
ex) public void printNumbers(String... messages, int... numbers) {
위와같이 두개의 가변인자 사용 불가능, 두개를 사용하고 싶을 경우 하나는 배열이나 리스트 형태로 보내야함
public void printNumbers(String[] messages, int... numbers) {
- 가변인자는 메서드 제일 마지막 매게변수여야 함
ex) public void printNumbers( int... numbers , String message,) {
위와 같이 사용 불가능함
- 가변인자만 있는 메서드는 배게변수 없이 호출이 가능함
ex) public void printNumbers(int... numbers) {
위 메서드를 printNumbers(); 로 호출 가능함