JAVA/Effective Java

메서드- 규칙 42 varags는 신중히 사용하라.

반응형

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인용.

반응형