티스토리 뷰

Java+Spring/Java

[Java]가변 인자(varargs)

Vagabund.Gni 2023. 5. 21. 13:46
728x90
반응형

목차

     

    Variable Arguments

     

    가변인자는 JDK 1.5부터 도입된 개념이다. 이름 그대로 개수가 동적으로 변하는 인자를 처리하기 위한 기능이다.

     

    가변인자가 도입되기 전까지는 배열을 사용했다고 하며, 현재도 내부적으로는 배열로 처리되고 배열로 다룰 수 있다고 한다.

     

    사용하는 방법은 매개변수의 타입 뒤에 '...'을 붙여서 표시하며, 이상의 주요 특징을 요약하면 아래와 같다.

     

    • 개수가 변하는 인자를 메서드의 매개변수로 전달 가능
    • 메서드 내부에서는 배열로 처리되므로 유사하게 다룰 수 있음
    • 필요에 따라 다른 매개변수와 함께 사용하는 것도 가능

    나는 이제야 경험해 보았지만 코드의 가독성이 좋아지고 작성이 제법 간결해진다.

     

    얼른 익숙해져서 마음껏 사용해야 하는데...

     

    Example

     

    가장 간단한 예는 아래와 같을 것이다.

    public class Example {
    	public static void main(String[] args) {
    
    		printString("apple", "lemon", "strawberry");
    	}
    
    	public static void printString(String... str) {
    		for (String s : str) {
    			System.out.println(s);
    		}
    	}
    }
    apple
    lemon
    strawberry

    String... 을 이용해 가변 인자를 메서드의 매개변수로 받고,

     

    내부적으로 배열과 동일하게 처리하는 것을 확인할 수 있다.

     

    다른 매개변수와 함께 사용하면 다음과 같은 코드를 구성할 수 있다.

    public class Example {
    	public static void main(String[] args) {
    
    		printString("Name: ", "apple", "lemon", "strawberry");
    	}
    
    	public static void printString(String name, String... str) {
    		for (String s : str) {
    			System.out.println(name + s);
    		}
    	}
    }
    Name: apple
    Name: lemon
    Name: strawberry

    추가로 당연하게도 가변 인자는 문자열뿐 아니라 int, long과 같은 기본형 변수에도 사용할 수 있다.

    public class Example {
    	public static void main(String[] args) {
    
    		printNumber("Number: ", 1, 2, 3);
    	}
    
    	public static void printNumber(String name, int... num) {
    		for (int n : num) {
    			System.out.println(name + n);
    		}
    	}
    }
    Number: 1
    Number: 2
    Number: 3
    반응형
    댓글
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2024/06   »
    1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28 29
    30
    글 보관함