자바의 가변인자

Single Ko·2023년 8월 23일
0

java

목록 보기
25/28

자바의 가변인자에 대해 알아보자

public void program(String input, String... expected) {
	......
}

이렇게 가끔 매개변수로 받는 파라미터들에 타입... 변수명 같이 점이 세개 붙어 있는 것을 본적이 있을 것이다.

이런 변수는 가변인자를 사용한 것인데 말 그대로 '가변', 형태나 성질이 바뀔 수 있다는 말로 매개변수의 개수가 동적으로 바뀔 수 있다는 말이다.

즉, 이를 사용하면 메서드 호출 시 전달되는 인자의 개수를 동적으로 변경할 수 있다.따라서 사용할때 몇가지 주의할 점이 있다.

  1. 가변인자를 사용한 매개변수는 마지막에 와야한다. -> 가변인자를 앞에 선언할 경우 컴파일 에러 발생

  2. public void program(String... expected) , public void program(String input, String expected) 같이 오버로딩을 사용했을경우, 오버로딩된 메서드가 구분되지 않아 오류가 난다. 이런 이유로 가변인자를 사용한 메서드는 오버로딩을 되도록 하지 않는 게 좋다.

  3. 가변인자 pubic void program(String... expected) 에서

    • program(), program("lol"), program("chrome", "lol") ... 같이 허용
    • 즉 아무런 매개 변수가 없는 것도 허용한다.

가변인자 내부에서 자체적으로 처리하는 매커니즘은 배열을 사용한다고 한다. 그래서 가변인자가 선언된 메서드를 호출할 때마다 배열이 새로 생성된다는 점도 유의하면서 사용을 하도록 하자.

가변인자는 결국 코드의 가독성과 사용편의성을 높일 수 있는 장점이 있다.

profile
공부 정리 블로그

0개의 댓글