1. 정의
필요에 따라 인자(매개변수) 갯수를 가변적으로 조정할 수 있는 기술.
가변인수가 없던 때에는 Collection이나 Array를 이용하여 가변인수를 대체하여 사용했었다.
2. 원리
인자로 ...이라는 표시를 해두면 컴파일러가 배열 형식으로 바꿔 인식한다.
그리고 인자로 주어지는 가변인수들을 모아 배열 객체로 만들어 처리한다.
1 2 3 4 5 | // 원본 public static void display (String... str) { // 컴파일러 변환 public static void display (String as[]) { | cs |
3. 예제
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 30 31 32 33 | import java.util.Vector; public class VarArgs { public static void display (Vector v) { for (Object s : v) { System.out.println("컬렉션 형태 : " + s); } } // 가변인수를 받는 메소드 public static void display (String... str) { for (String s : str) { System.out.println("가변 배열 형태 : " + s); } } } import java.util.Vector; public class VarArgsMain { public static void main(String[] args) { VarArgs varArgs = new VarArgs(); Vector vector = new Vector(); vector.add("Hello"); vector.add("World"); vector.add("Korea"); varArgs.display(vector); // 인자로 여러 개를 입력 varArgs.display("Hello", "World", "Korea"); } } | cs |
'BackEnd > Java' 카테고리의 다른 글
RSA 암호화 구현 (0) | 2017.03.14 |
---|---|
Java :: Spring 파일 업로드 (multipart-form/data) (2) | 2017.03.14 |
Java :: 열거형 (Enumeration) (Java 5.0 이상) (0) | 2017.02.13 |
초기화 블록 (Initialization block) (0) | 2017.02.13 |
AWT vs 스윙 (Swing) (0) | 2017.02.10 |