Sky Archive

Java

[JAVA] 가변매개변수(매개변수 동적 사용/오버로딩 X)

서울시장 2021. 10. 26. 16:34

프로그램 개발을 하다보면 동일한 매개변수를 필요한 개수에 따라 오버로딩하여 개발하는 상황이 올 수 있다.
하지만 오버로딩으로 처리가 된다고 해도 동일한 메소드를 매개변수가 늘어남에 따라 추가하는 것은 비효율적이다.
아래 소스와 같은 상황일때 매개변수가 하나 더 필요하다고 하면 매개변수가 4개짜리 매소드를 또 추가하기 찜찜할 것이다.

 

public static void show(String param) {
    System.out.println(param);
}

public static void show(String param1, String param2) {
    System.out.println(param1 + " " + param2);
}

public static void show(String param1, String param2, String param3) {
    System.out.println(param1 + " " + param2 + " " + param3);
}


이때 매개변수의 개수 상관없이 매개변수 개수를 동적으로 설정할 수 있도록 가변인자를 사용하면 된다.
JDK 1.5 이상부터 가변인자(가변매개변수)를 사용할 수 있다.
메소드의 매개변수를 받는 변수타입에 '...' 을 추가만 해주면 쉽게 매개변수를 동적으로 사용할 수 있다.

 

public static void main(String[] args) {
    show("param1");
    show("param", "param2");
    show("param", "param2", "param3");
    show("param", "param2", "param3", "param4");
}

public static void show(String... params) {
    String text = "";
    for(String param : params) {
        text += param + " ";
    }
    System.out.println(text);
}
처리결과
param1 
param1 param2 
param1 param2 param3 
param1 param2 param3 param4 


가변인자를 이용하여 매개변수의 개수에 상관없이 메소드 하나로 손쉽게 처리할 수 있다.