BackEnd/Java
가변인수 (Java 5.0 이상)
초록 (green)
2017. 2. 13. 22:07
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 |