#42 가변 인자(varargs)를 분별력 있게 사용하자
가변 인자(varargs) 메서드는 특정 타입의 인자를 하나 이상 받는 메서드입니다.
1. 전달된 인자의 개수를 자신의 크기로 하는 배열을 생성
2. 전달된 인자의 값들을 배열에 삽입(초기화)
3. 이 배열을 메서드로 전달
만약 가변 인자를 주지 않고 호출하면(min()), IllegalArgumentException 예외가 런타임 시 발생합니다.
이를 방지하기 위해 하나의 일반 매개 변수와 가변 인자 매개 변수를 받는 메서드를 이용할 수 있습니다.
가변 인자를 이용할 때는 성능 측면도 고려해야 합니다.
가변 인자 메서드는 호출할 때마다 배열 생성과 초기화가 일어나기 때문에, 성능적인 측면에서는 일반 매개 변수를 이용하는 메서드보다는 성능면에서 좋지 않습니다.
이런 경우에는 일반 매개 변수들(0~3개)을 가지는 오버 로딩된 메서드들과, 변수가 4개 이상일 때는 가변 인자를 쓰는 메서드들로 나누어서 구현할 수 있습니다.
이러면 적어도 인자의 개수가 3개 이하 일 때는 가변 인자로 인한 성능 이슈가 발생하지 않습니다.