반응형
Varags는 가변 인자 메서드로 자바 1.5부터 공식적으로 추가되었다.
이 메서드는 지정한 자료형의 인자를 0개 이상으로 받을 수 있다.
기본 형태는 다음과 같다.
1 2 3 | public int sum(String... args) { System.out.println(args.size()); } | cs |
varargs 가변 인자 메서드는 0개 이상 인자를 받을 수 있기 때문에 인자를 보내지 않아도 사용할 수 있다.
이런점이 편리할 수도 있으나 문제점을 야기할 수 있다.
만약 인자를 가지고 동작을 하도록 설계된 함수가 있다고 해보자.
1 2 3 4 5 | public void getString(String... args) { for (int i = 1; i <= args.length; i++) { System.out.println(i); } } | cs |
위의 프로그램에 만약 인자가 없이 올경우에는 문제가 될 수 있다.
이를 위해서는 인자가 있는지 확인을 하고 동작을 하도록 설계하여야 한다.
다양한 문제가 야기될 수 있는 varargs는 인자 개수가 가변적인 메서드를 정의할 때 편리하지만 남용되면 곤란하다. 그러므로 정말로 임의 개수의 인자를 처리할 수 있는 메서드를 만들어야 할 때만 사용한다.
출처 : 조슈아 블로크, 『 Effective Java 2/E』, 이병준 옮김, 인사이트(2014.9.1), 규칙42인용.
반응형
'JAVA > Effective Java' 카테고리의 다른 글
메서드- 규칙 45 지역 변수의 유효범위를 최소화하라. (0) | 2018.05.29 |
---|---|
메서드- 규칙 43 null 대신 빈 배열이나 컬렉션을 반환하라. (0) | 2018.05.29 |
메서드- 규칙 41 오버로딩할 때는 주의하라. (0) | 2018.05.29 |
메서드- 규칙 40 메서드 시그니처는 신중하게 설계하라. (0) | 2018.05.29 |
메서드- 규칙 39 필요하다면 방어적 복사본을 만들라. (0) | 2018.05.29 |