자바에서 매개변수에 ... 처럼 점 3개가 나오는데 이게 뭔가요?"
조회수 13899회
소스를 보다가 아래처럼 매개변수에 점 세개가 오는데 이게 무슨 뜻이에요??
public void myMethod(String... strings){
// method body
}
1 답변
-
네 저걸 보통 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)
이렇게 먼저와버리면 안됩니다.
댓글 입력