2014-05-10 1 views

답변

0

자바는 "가변 인자"지원 같은 것을 할 수 있도록하려면, 그래서 내가 for 루프를 통해 그들 모두를 얻으려면 - Arbitrary Number of Arguments를 참조하십시오

varargs라는 구조체를 사용하여 에 임의의 값을 메서드에 전달할 수 있습니다. 메소드에 전달되는 특정 유형의 인수 중 몇 개를 모를 때 varargs를 사용합니다. 배열을 수동으로 생성하고 단축키입니다.

varargs를 사용하려면 마지막 매개 변수의 유형을 줄임표 (점 3 개 ...), 공백 및 매개 변수 이름. 그런 다음 아무 것도 포함하지 않고 해당 매개 변수의 번호를과 함께 호출 할 수 있습니다.

예를 들어,이 경우 같은처럼 보일 수 있습니다 그 :

public static boolean test(int... args) { 
    // now args, a variable of type int[], can be accessed 
    for(int i; i < args.length; i++) { 
     doStuff(args[i]); 
    } 
} 

이 개별적으로 명명 된 매개 변수의 독점과 같은 유형의 시스템의 다양성을 적용 할 수있는 방법은 없습니다 - 위의 방법은 0..n 정수를 허용합니다.

지금까지 개별 매개 변수로 : 그들은 에만 바운드 식별자 이름으로 액세스 할 수 수 있으며, 런타임에 사용할 수 "테이블 조회가"없다. 컬렉션은 내부적으로 작성/사용할 수 있습니다.

public static boolean test(int a, int b) { 
    int args[] = {a, b}; 
    // yay, now we got an array of argument values and the method 
    // must be invoked with exactly 2 arguments 
} 
0

매개 변수로 배열을 전달할 수 있습니까? 그렇다면 대답은 '예'입니다. 아래에서는 메서드의 매개 변수로 double 배열을 전달합니다.

public void meth1 (double[] myList){ 
    for(int i =0; i<myList.length; i++){ 
     //Process entries here 
    } 
} 
관련 문제