가변인수 : 메서드에 전달하는 인수의 개수를 유연하게 할 수 있는 편리한 기능.
장점 : 유연성, 가독성
단점 :
- 오버로드의 모호성 : 메서드 오버로드 시 가변인수가 다른 오버로드된 메서드와 충돌할 수 있다
- 성능 : 가변인수는 배열로 변환되기 때문에 성능에 약간의 오버헤드가 있다.
- 타입 안정성 : 컴파일 타임에 타입 안정성이 완전히 보장되지 않는다.
핵심 정리 : 인수 개수가 일정하지 않은 메서드를 정의해야 한다면 가변인수가 반드시 필요하다. 메서드를 정의할 때 필수 매개변수는 가변인수 앞에 두고, 가변인수를 사용할 때는 성능 문제까지 고려하자.
'이펙티브 자바' 카테고리의 다른 글
[이펙티브 자바] 아이템 55. 옵셔녈 반환은 신중히 하라 (0) | 2024.05.21 |
---|---|
[이펙티브 자바] 아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 52. 다중정의는 신중히 사용하라 (0) | 2024.05.21 |
[이펙티브 자바] 아이템 51. 메서드 시그니처를 신중히 설계하라 (0) | 2024.05.14 |
[이펙티브 자바] 아이템 50. 적시에 방어적 복사본을 만들라 (0) | 2024.05.12 |