프로그램 개발을 하다보면 동일한 매개변수를 필요한 개수에 따라 오버로딩하여 개발하는 상황이 올 수 있다.
하지만 오버로딩으로 처리가 된다고 해도 동일한 메소드를 매개변수가 늘어남에 따라 추가하는 것은 비효율적이다.
아래 소스와 같은 상황일때 매개변수가 하나 더 필요하다고 하면 매개변수가 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 |
가변인자를 이용하여 매개변수의 개수에 상관없이 메소드 하나로 손쉽게 처리할 수 있다.
'Java' 카테고리의 다른 글
[JAVA] 문자열을 합치는 여러가지 방법 (+, concat, StringBuilder, StringBuffer) (0) | 2021.12.07 |
---|---|
[Java] window에서 자바 아카이브(JAR)로 압축하기 (0) | 2021.11.24 |
[JAVA] URL링크 공유 웹사이트 크롤링(Jsoup 라이브러리) (0) | 2021.10.26 |
[JAVA] 태그를 제거하는 정규표현식 (0) | 2021.08.06 |
[Java] Emoji 문자 제거 (2) | 2021.07.19 |