답변:
Java에서는 varargs 라고 하며 구문은 일반 매개 변수처럼 보이지만 유형 뒤에 줄임표 ( "...")가 있습니다.
public void foo(Object... bar) {
for (Object baz : bar) {
System.out.println(baz.toString());
}
}
vararg 매개 변수는 항상 메소드 서명 의 마지막 매개 변수 여야하며 해당 유형의 배열을받은 것처럼 액세스됩니다 (예 : Object[]
이 경우).
이것은 Java에서 트릭을 수행합니다.
public void foo(String parameter, Object... arguments);
세 가지 포인트를 추가해야 ...
하고, varagr
매개 변수는 메소드의 서명의 마지막이어야합니다.
그것은 이전의 답변에 기록되면, 그것은됩니다 varargs
및 선언 ellipsis
( ... )
또한 값 유형 및 / 또는 참조 유형을 전달하거나 둘 다 전달할 수 있습니다 (google Autoboxing ). 또한 printArgsAlternate
아래 의 메서드 와 함께 메서드 매개 변수를 배열로 사용할 수 있습니다 .
public class VarargsDemo {
public static void main(String[] args) {
printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
}
private static void printArgs(Object... arguments) {
System.out.print("Arguments: ");
for(Object o : arguments)
System.out.print(o + " ");
System.out.println();
}
private static void printArgsAlternate(Object... arguments) {
System.out.print("Arguments: ");
for(int i = 0; i < arguments.length; i++)
System.out.print(arguments[i] + " ");
System.out.println();
}
}
Arguments: 3 true Hello! true 25.3 a X
Arguments: 3 true Hello! true 25.3 a X