Varargs - J2SE 5.0 에서 추가된 기능
JAVA / 2008. 12. 5. 16:07
오늘 문득 공통 라이브러리를 만들다가 예전에 지나가면서 본 varargs 를 떠올리고 실제로 적용해 보았습니다.
그래서 정리를 살짝~
http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
Varargs
This facility eliminates the need for manually boxing up argument lists into an array when invoking methods that accept variable-length argument lists. Refer to JSR 201.
C 언어에 있는 가변 인수를 자바스타일로 적절하게 변환을 해 놓은 듯 합니다.
(C 언어에서는 ... 과 va_list, va_start, va_arg, va_end 와 같은 매크로를 사용함)
자바에서는 ObjectType... 키워드를 통해서 varargs 를 지원합니다.
아래 코드의 args 인자는 String[] 처럼 사용할 수 있습니다.
우리가 자주사용하는 String 클래스에서 format static method 에서도 이런 varargs 를 사용하고 있습니다.
Sysetm.out.printf() 메소드도 varargs 를 통해 C 스타일의 printf() 함수 처럼 사용할 수 있습니다.
잘만 활용하면 그간 String 배열로 인자를 받는 부분을 저런식으로 받을 수 있어 소스는 조금 더 깔끔해 질 수 있을 것 같습니다.
컴파일러에서 객체 배열로 알아서 변환해 주는가에 대해서는 디컴파일을 해봐야 겠습니다.
나온지도 꽤 된거 같은데 왜 좋은 기능을 모르고 안쓰고 있었을까요 =ㅁ=;;;