Varargs - J2SE 5.0 에서 추가된 기능



오늘 문득 공통 라이브러리를 만들다가 예전에 지나가면서 본 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 배열로 인자를 받는 부분을 저런식으로 받을 수 있어 소스는 조금 더 깔끔해 질 수 있을 것 같습니다.

컴파일러에서 객체 배열로 알아서 변환해 주는가에 대해서는 디컴파일을 해봐야 겠습니다.


나온지도 꽤 된거 같은데 왜 좋은 기능을 모르고 안쓰고 있었을까요 =ㅁ=;;;




댓글

가장 많이 본 글