Java Language
변수 (변수)
수색…
비고
"varargs"메서드 인수는 해당 메서드의 호출자가 지정된 형식의 여러 인수를 각각 별도의 인수로 지정할 수있게합니다. 메소드 선언에서 기본 유형 다음의 세 ASCII 기간 ( ...
)으로 지정됩니다.
메소드 자체는 단일 인수로 인수를받습니다. 요소 유형은 varargs 인수의 유형입니다. 배열은 자동으로 만들어집니다 (호출자는 여러 값을 별도의 메서드 인수로 전달하는 대신 명시 적 배열을 전달할 수 있지만).
varargs에 대한 규칙 :
- Varargs가 마지막 인수 여야합니다.
- 메서드에는 하나의 Varargs 만있을 수 있습니다.
위의 규칙을 따라야합니다. 그렇지 않으면 프로그램에서 컴파일 오류가 발생합니다.
varargs 매개 변수 지정
void doSomething(String... strings) {
for (String s : strings) {
System.out.println(s);
}
}
마지막 매개 변수 유형 다음의 세 마침표는 최종 인수가 배열 또는 인수 시퀀스로 전달 될 수 있음을 나타냅니다. Varargs는 최종 인수 위치에서만 사용할 수 있습니다.
Varargs 매개 변수를 사용한 작업
varargs를 메소드 정의의 매개 변수로 사용하면 배열 또는 인수 시퀀스를 전달할 수 있습니다. 인수 시퀀스가 전달되면 자동으로 배열로 변환됩니다.
이 예제는 배열과 printVarArgArray()
메소드에 전달되는 인수의 시퀀스를 보여주고 메소드 내부의 코드에서 똑같이 처리되는 방법을 보여줍니다.
public class VarArgs {
// this method will print the entire contents of the parameter passed in
void printVarArgArray(int... x) {
for (int i = 0; i < x.length; i++) {
System.out.print(x[i] + ",");
}
}
public static void main(String args[]) {
VarArgs obj = new VarArgs();
//Using an array:
int[] testArray = new int[]{10, 20};
obj.printVarArgArray(testArray);
System.out.println(" ");
//Using a sequence of arguments
obj.printVarArgArray(5, 6, 5, 8, 6, 31);
}
}
산출:
10,20,
5,6,5,8,6,31
이와 같이 메서드를 정의하면 컴파일 타임 오류가 발생합니다.
void method(String... a, int... b , int c){} //Compile time error (multiple varargs )
void method(int... a, String b){} //Compile time error (varargs must be the last argument
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow