블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
02-29 00:00
 

달력

« » 2024.2
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29
 

최근에 올라온 글

최근에 달린 댓글


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

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



Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백