Java 변수 매개변수 목록
class A {}
모든 클래스는 Object에서 상속되므로 객체 배열을 매개변수로 사용할 수 있는 메서드:
public class parameter { static void printArray(Object[] args){ for(Object obj : args){ System.out.print(obj + " "); } System.out.println(); } public static void main(String[] args){ printArray(new Object[] { new Integer(47), new Float(3.14), new Double(11.11) }); printArray(new Object[]{"one", "two", "there"}); printArray(new Object[]{new A(), new A(), new A()}); } }
의 경우 Java SE5 이상 버전에서는 추가된 기능을 다음과 같이 작성할 수 있습니다.
public class parameter { public static void printArray(Object... args){ for(Object obj : args){ System.out.print(obj + " "); } System.out.println(); } public static void main(String[] args){ printArray(new Integer(47), new Float(3.14), new Double(11.11)); printArray(47, 3.14F, 11.11); printArray("one", "two", "three"); printArray(new A(), new A(), new A()); printArray((Object[]) new Integer[]{1, 2, 3, 4}); printArray(); } }
Object가 생각하는 매개변수 목록을 사용할 수 있습니다.
public class VarargType{ static void f(Character... args){ System.out.print(args.getClass()); System.out.println(" length " + args.length); } static void g(int... args){ System.out.print(args.getClass()); System.out.println(" length " + args.length); } public static void main(String[] args){ f('a'); f(); g(1); g(); System.out.println(" int [] " + new int[0].getClass()); } }
Java 5에서 도입된 기능입니다. 메소드가 수신할 매개변수의 개수가 확실하지 않은 경우 이 기능이 유용할 수 있습니다.
예를 들어 IO 작업이 포함된 경우 입력과 출력이라는 두 개 이상의 스트림을 닫아야 합니다. 하나의 흐름.
public static void closeSilent(Closeable... closeables) { for (Closeable closeable : closeables) { if (closeable != null) { try { closeable.close(); } catch (IOException ignored) { } } } }
이 기능을 사용하기에 적합하다고 생각하는 곳은 다음과 같습니다.
이 매개변수는 동일한 유형을 갖습니다. 매개변수의 수는 정의되지 않으며 각각은 선택사항입니다.
이러한 매개변수의 목적은 동일합니다. 예를 들어 위의 내용은 모두 실행 종료입니다.
Java 가변 길이 매개변수 목록은 메소드 매개변수 목록 끝에만 배치할 수 있습니다.
Java 가변 길이 매개변수 목록 구현