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

+ Recent posts