가변인자 (...파라미터)

HwangBaco·2023년 5월 25일
0

개발을 배우다 보면, 아래와 같은 코드를 한 번 쯤은 마주하게 됩니다.

public void hello(String... params) {
	...
}

처음 마주했을 때에는 ...이라는 표현이 매우 이질적으로 느껴졌던 기억이 있습니다. 이를 누군가에게 설명하기 위해 정리해봅니다.

가변인자


자바는 ...를 사용하여 동적으로 파라미터를 받을 수 있습니다.
즉, 동일한 타입의 파라미터의 개수를 정확하게 알 수 없을 경우, 모든 경우에 대하여 오버로딩을 진행할 수 없으니 위와 같은 방식을 적용할 수 있습니다.

위와 같은 hello 메서드가 존재한다고 할 때 다음과 같이 동작시킬 수 있습니다.

public void callHello() {
	hello();
    hello("h");
    hello("h", "ell");
    hello("h", "el", "looooooo");
    hello(new String[]{"H", "ell", "o"});
}

주의할 점은, 만약 메서드가 가변인자와 동시에 다른 파라미터도 받아야 하는 경우엔, 컴퓨터가 원활히 이해할 수 있도록 가변인자는 메서드 파라미터의 마지막에 넣어줘야 합니다.

public void hello2(String param1, String param2, String... params) {
	...
}

출처

profile
알고리즘 풀이 아카이브

0개의 댓글