콘텐츠로 건너뛰기

자바에서 가변인자(varargs) 사용하기

# 가변 인자

자바 1.5 배포판부터 “가변 아리티 메소드” 라는 가변 인자 메소드가 추가 되었다.

메소드 호출 시 전달된 인자의 개수를 자신의 크기로 하는 배열을 생성하여,

그 배열을 파라미터로 호출된 메소드로 전달한다.

private void setParams(Object … params) {
    Map dummyParams = new HashMap();
    for (int i = 0; i < params.length; i++) {
        dummyParams.put(keys[i], params[i]);
    }
    action.setParams(dummyParams);
}

최소한 1개 이상의 파라미터가 필요한 경우

// AS-IS : 런타임 오류
if ( params.length == 0 ) {
    throw new IllegalArgumentException(“Error”);
}

// TO-BE :
private void setParams(Object firstParam, Object … remainingParam) { …

성능이 중요한 상황에서 가변 인자를 사용할 때는 주의하자.

가변 인자 메소드를 호출할 때마다 배열 생성과 초기화가 일어난다.

예제) 사용 빈도가 많은 것들은 그냥 선언하고, 적은 것은 가변 인자를 사용함
public void foo() { }
public void foo(int a1) { }
public void foo(int a1, int a2) { }
public void foo(int a1, int a2, int … rest) { }

출처 : Head First Java, Effective Java, 인터넷

“자바에서 가변인자(varargs) 사용하기”의 2개의 댓글

    1. 도움이 되는 내용이라 다행입니다^^

      저도 책이나 인터넷 정보 이런 것을 모아서 재구성한 정도의 정보라

      크게 문제될 것이 없습니다.

      정보는 공유되어야 하지요^^

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다