본문 바로가기

이펙티브 자바

[이펙티브 자바] 아이템 53. 가변인수는 신중히 사용하라

가변인수 : 메서드에 전달하는 인수의 개수를 유연하게 할 수 있는 편리한 기능.

 

장점 : 유연성, 가독성

단점 :

  • 오버로드의 모호성 : 메서드 오버로드 시 가변인수가 다른 오버로드된 메서드와 충돌할 수 있다
  • 성능 : 가변인수는 배열로 변환되기 때문에 성능에 약간의 오버헤드가 있다.
  • 타입 안정성 : 컴파일 타임에 타입 안정성이 완전히 보장되지 않는다.

 

핵심 정리 : 인수 개수가 일정하지 않은 메서드를 정의해야 한다면 가변인수가 반드시 필요하다. 메서드를 정의할 때 필수 매개변수는 가변인수 앞에 두고, 가변인수를 사용할 때는 성능 문제까지 고려하자.