본문 바로가기

IT/Java

가변인자 (varargs : Variable Arguments)


멘토과장님께서 참고하라고 소스를 주셨는데, 희한한 형태의 코드가 보였다.



.. 무엇인가 이 요상한 형태의 인자는; String[] 도 아니고 String도 아니고 String... ?

"요거이 대체 뭐당가요" 부시맨처럼 묻는 내게 과장님은 이렇게 대답해주셨다.


ㄴ..넵 알겠습니다!


구글링하니 Variable Arguments. 가변인자 라고 한다.

ArrayList를 사용하자니 인자가 너무 적고, 배열을 사용하자니 인자의 갯수를 예측하기 힘들다.

이럴때 가변인자를 사용한다. 인자의 자료형과 변수명 사이에 점 3개(...)을 넣어준다.


void varargs(String... params)


결국 위 코드의 getFilePath()메서드는 인자로 filePath와 filePath2를 받아

순서대로 경로를 체크하여 파일이 존재하는 경로를 리턴하는 메서드 되겠다.

근데 과장님, 이정도면 그냥 길이2짜리 배열 써도 되지않을까요


Javascript에서나 볼 수 있을 줄 알았던 형태를 Java에서도 보게될줄이야.

(아마도) 인자들의 데이터타입이 통일되어야할것만 같지만..

이정도만 알아도 유용하게 써먹을 수 있을것같다. :-)


간단한 예제.