키보드워리어

[자바] 가변적 매개변수 - variable arguments 본문

JAVA/입문

[자바] 가변적 매개변수 - variable arguments

꽉 쥔 주먹속에 안경닦이 2023. 2. 19. 12:29
728x90

가변인수 소개

내가 만들 메서드에 1개의 매개변수가 아니라, 2개, 3개가 들어가야 할 경우 이를 어떻게 처리할 수 있을까요? 바로 가변적 매개변수를 사용해야 합니다.

 

변수 인수가 무엇인지, 어떻게 작동하는지, 언제 유용할지 등 변수 인수의 개념을 잠깐 살펴볼게요.

 

변수 인수(varargs)는 다양한 수의 인수를 메서드에 전달할 수 있는 Java의 기능입니다. 변수를 사용하여 동일한 유형의 인수를 0개 이상 사용하는 메서드를 정의할 수 있습니다. 이것은 메서드에 전달될 인수의 수를 알 수 없거나 인수의 수가 다른 시나리오에 따라 달라질 수 있는 경우에 유용합니다.

Java에서 메서드 시그니처의 매개 변수 유형 뒤에 줄임표(...)를 추가하여 변수 매개 변수를 정의할 수 있습니다.

public void myMethod(String... args) {
   // Method implementation
}

이와 같은 코드를 짜주면 매개변수를 통해서 인자값들은 1개도, 2개도, 3개도 가능해집니다.

보통 String []를 쓰면 매개변수로 new String[]를 시켜서 가독성이 좀 떨어지지만,... 은 이를 좀 제거해 주는 효과를 가져올 수 있습니다.

가변인수 사용 이전
가변인수 사용 이전
가변인수 사용 이후
가변인수 사용 이후

여기에 주의할 부분이 조금 있는데요. 바로 매개변수를 넣는 순서입니다.

가변인수 주의할 부분
가변인수 주의할 부분

가변 인수는 항상 파라미터의 맨 마지막 끝에 위치해야 해요. 빨간색 박스처럼 앞에 오면 오류를 뱉어요.

그리고 물론 여기에는 null을 인수로 전달하거나 인수에 잘못된 데이터 유형을 사용하는 등의 작업이 포함되면 오류를 내겠죠?

 
728x90