자바에서 매개변수에 ... 처럼 점 3개가 나오는데 이게 뭔가요?"


소스를 보다가 아래처럼 매개변수에 점 세개가 오는데 이게 무슨 뜻이에요??

 public void myMethod(String... strings){
    // method body
}
  • 2016년 01월 07일에 작성됨

조회수 319


1 답변


좋아요
0
싫어요
채택취소하기

네 저걸 보통 varargs 또는 가변인자라고 하는데요. 무슨뜻이냐면 String 객체가 0개부터 여러개까지 매개변수로 올수 있다, 이런 뜻이에요.

위의 예에서는

myMethod(); // Likely useless, but possible
myMethod("one", "two", "three");
myMethod("solo");
myMethod(new String[]{"a", "b", "c"});

이런식으로 다양하게 쓸수 있죠. 중요한건 가변인자는 항상 배열일 필요없이 인자를 전달하지 않아도! 되고 인자 값이 한개도 가능하다는 것입니다.

또 위의 식으로 메소드에 전달했을 때

public void myMethod(String... strings){
    for(String whatever : strings){
            //가변인수에 전달된 객체를 각각 접근
    }

    // 위의 코드와 동일 각각 접근가능 
    for( int i = 0; i < strings.length; i++){
        // strings[i]형식으로 배열에 각각 접근가능하다.
    }
}

또 가변인자는 항상 맨 뒤에 와야해요 myMethod(int i, String... strings) 이런 식으로는 가능하지만 myMethod(String... strings, int i) 이렇게 먼저와버리면 안됩니다.

  • 2016년 01월 07일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close