spring 스터디를 하다가 매개변수값으로 아무것도 안넣을 때도 있고 매개변수값이 들어갈 경우도 있었다. 이 경우에 오버로딩으로 똑같은 함수를 작성해야하나 라는 생각을 했다. 그런데 스터디 똑또기 친구가 가변인자라는 이야기를 해줬다. 그게 뭐지? 하고 봤는데 가끔 썼던 거다! 이름을 모르고 썼다니 ㅠㅠ
말그대로 변할 수 있는 인자인데, ...
을 사용하여 매개변수로 아무것도 넘겨주지 않을 수도 있고 여러 개를 넘겨줄 수도 있다.
아래 오른쪽처럼 paging 변수를 ...
을 사용해서 선언해준다. 첫번째 사진 왼쪽처럼 int형 두개의 limit, offset 변수를 넣을 수 있고, 두번째 사진 왼쪽처럼 아예 아무 파라미터도 안 넣어줄 수 있다.
아래는 다른 글에서 퍼온 예시인데, 딱 명료한 설명된 예시같다.
public class test {
public static void main(String[] args) {
test t = new test();
t.variable();
t.variable("A");
t.variable("A","B");
t.variable("A","B","C");
t.variable("A","B","C","D");
}
public void variable(String... s) {
System.out.println(s);
}
}