-
[Java] 가변 길이 인자 개념과 사용법IT/개발(자바, 서블릿, 스프링 등) 2019. 12. 7. 17:31
같은 타입의 데이터를 전달받는 메서드라면 꼭 오버로딩 사용하지 않고도 인자의 개수를 다르게 호출할 수 있는 방법이 있다. JDK5부터 추가된 가변 길이 인자를 사용하면 된다. 가변 길이 인자는 메서드 호출시 자동으로 배열이 생성되고 배열에 인자값들을 저장한 후에 배열로 처리하는 것이다. 자동으로 생성되는 배열의 타입은 선언된 타입으로 지정되며 배열의 크기는 인자의 개수와 동일하다.
문법
[메서드 이름]([데이터 타입]...[변수 이름]){}
예시
void test(int... v){
System.out.println(v.length);
}
메서드가 실행이 되면 자동으로 int[] 배열을 생성해 전달받은 인자값(들)을 저장하고, v 변수가 이 배열을 참조한다. 메서드 내에서 v 변수를 통해 전달받은 인자값(들)을 처리할 수 있다. 아래와 같이 복합선언도 가능하다.
예시
void test(String name, int... v) {
System.out.println(name);
System.out.println(v.length);
}
주의할 점이 있다. 가변 길이 인자를 사용할 때 다른 매개변수와 함께 선언할 땐, 가장 마지막에 선언이 되어야 한다. 가변 길이 인자를 받는 매개변수는 한 번만 선언 가능하다. 하나의 메서드에서 두개 이상의 가변 길이 인자는 불가능하다.
'IT > 개발(자바, 서블릿, 스프링 등)' 카테고리의 다른 글
[Java] 자바의 메모리 구조 정리 (0) 2019.12.07 [Java] 클래스 객체 인스턴스 용어 정리 (0) 2019.12.07 [Java] 메서드 오버로딩 (0) 2019.12.07 [Java] 객체지향 프로그래밍 개념 / 객체 모델링과 클래스 다이어그램 개념 (0) 2019.12.07 [Java] 인자(argument)와 매개변수(parameter)의 차이 (0) 2019.12.07