본문 바로가기

IT/java

[java] varargs(Variable Argument List)

public static void main(String [] args
{
    foo(1, 2, 3);
    foo(1, 2, 3, 4, 5);
}

public static void foo(int ... nums)
{
    for(int num : nums)
    {
        System.out.print(num);
    }
    System.out.println();
    System.out.printf("The last number of list is %d\n", nums[nums.length - 1]);
}

 

위의 예제와 같이 main 메소드에서는 C언어와 동일하게 가변적으로 전달인자를 줄 수 있다. 호출받는 함수에서는 전달인자의 자료형과 변수명 사이에 점 3개를 찍으면 된다.

void foo(int ... nums)

 


그리고 그 변수는 배열과 동일하게 사용하면 된다. 배열이기 때문에 전달인자의 최대개수는 배열의 최대 사이즈와 동일하다. 역시 JDK 5.0에서 추가된 enhanced for loop에서 배열이기 때문에 쉽게 사용될 수 있다. enhanced for문은 다른 언어에 있는 foreach와 비슷하다. 위의 for문은 다음과 같은 내용이다.

int num = 0;
    for(int i=0; i    {
        num = nums[i]
        System.out.print(num);
    }