다음은 간단한 작은 프로그램입니다:
다음과 같이 코드 코드를 복사합니다.
import java.util.Arrays;
수업6
{
공개 정적 무효 메인(문자열[] 인수)
{
int 배열[]={2,3,1,5,4,6};
System.out.println(Arrays.toString(array));
System.out.println(getSum(array));
//System.out.println(getSum(2,3,1,5,4,6));
}
static int getSum(int array[])//요소의 합을 계산합니다.
{
정수 합=0;
for(int i=0;i<array.length;i++)
합계+=배열[i];
반환 금액;
}
}
getSum(int array[]) 메소드 선언은 int 유형의 1차원 배열만 허용하도록 제한합니다. 이제 라인 10(주석 처리된 라인)을 실행하려고 하면 분명히 오류가 발생합니다. 이 선언 방법에는 특히 전달될 매개변수의 수를 알 수 없는 경우 명백한 단점이 있습니다.
Java5부터 가변 매개변수가 등장했습니다. 특징은 다음과 같습니다. 매개변수 수는 가변적이며 0부터 N까지 전달될 수 있습니다. 이는 가변 매개변수가 있는 메소드를 호출할 때 메소드의 마지막 매개변수여야 합니다. 컴파일러는 암시적으로 가변 매개변수에 대한 배열을 생성합니다. 배열은 변수 매개변수에 액세스하기 위해 메소드 본문에 포함됩니다.
위 코드의 주석 처리를 제거하고 getSum(int array[])를 getSum(int ... array)로 변경하여 원하는 결과를 얻습니다. 얻은 결과는 다음과 같습니다.
아래 21의 두 출력에서 getSum(int ... array)가 두 개의 서로 다른 데이터 숫자의 입력을 성공적으로 수락했음을 확인할 수 있습니다.
실제 프로그래밍에서 특별한 주의가 필요한 또 다른 점은 가변 매개변수가 메소드의 마지막 매개변수여야 한다는 것입니다. 테스트를 위해 위 코드를 간단하게 변경할 수 있습니다.