brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Aug 01. 2018

Effective Java - 메서드(method)

#42 가변 인자(varargs)를 분별력 있게 사용하자

Effective Java - 메서드(method)


#42 가변 인자(varargs)를 분별력 있게 사용하자


#01 varargs


가변 인자(varargs) 메서드는 특정 타입의 인자를 하나 이상 받는 메서드입니다.

1. 전달된 인자의 개수를 자신의 크기로 하는 배열을 생성

2. 전달된 인자의 값들을 배열에 삽입(초기화)

3. 이 배열을 메서드로 전달


만약 가변 인자를 주지 않고 호출하면(min()), IllegalArgumentException 예외가 런타임 시 발생합니다.

#02 min method


이를 방지하기 위해 하나의 일반 매개 변수와 가변 인자 매개 변수를 받는 메서드를 이용할 수 있습니다.

#03 min method




가변 인자를 이용할 때는 성능 측면도 고려해야 합니다.

가변 인자 메서드는 호출할 때마다 배열 생성과 초기화가 일어나기 때문에, 성능적인 측면에서는 일반 매개 변수를 이용하는 메서드보다는 성능면에서 좋지 않습니다.


#04 foo methods


이런 경우에는 일반 매개 변수들(0~3개)을 가지는 오버 로딩된 메서드들과, 변수가 4개 이상일 때는 가변 인자를 쓰는 메서드들로 나누어서 구현할 수 있습니다.

이러면 적어도 인자의 개수가 3개 이하 일 때는 가변 인자로 인한 성능 이슈가 발생하지 않습니다.




매거진의 이전글 Effective Java - 메서드(method)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari