오늘은 Java의 ... 표현에 대해서 알아보려고한다.
이 표현을 최근에 접해보면서 알게되었는데, 생각해보면 가끔 코딩을 하다가 파라미터를 받을 때 ... 같은 표현을 본 적이 있는 것 같다.
이 표현의 이름은 ellipsis 뜻 풀이 하자면 생략이다. (가변길이 파라미터 또는 가변인자라고도 불린다)
같은 유형의 타입을 여러개 받아도 처리 할 수 있게 해주는 역할을 해준다.
이렇게 말하면 살짝 이해가 안될 수도 있을 것 같아 예제 코드를 살펴보자.
public class Main{
public static void main(String[] args) {
String[] name = {"GG", "_", "BB"};
print("GG_BB");
System.out.println("\n");
print(name);
}
public static void print(String... value){
List<String> list = Arrays.asList(value);
list.stream().forEach(x -> System.out.print(x));
}
}
위 코드를 통해 print라는 메소드에서 String... 을 사용해서 값을 여러개 받아 오는 것을 볼 수 있다.
물론 한개도 받을 수 있으며, 위 코드의 경우 출력 값은 같아지게 된다.
이처럼 변수를 몇개 받을 지 모르겠을 때 같은 경우 이러한 가변인자를 통해 작성하게된다.
하지만 메소드를 호출 할 때마다 배열이 생성되기 때문에 이것도 남용하게 되면 성능에 문제를 가져올 수 있다.
그러한 일을 막기위해 오버로딩을 사용하는 방법도 있다.
역시 어떤 기능이 되었던 필요한 곳을 찾아서 그 곳에만 사용하는 것은 매우 중요한 것 같다.
참고 -
'언어 > Java' 카테고리의 다른 글
[Java] Static import (0) | 2022.03.20 |
---|---|
[Java] 컬렉션 프레임워크 (0) | 2022.03.20 |
[Java] - Lambda 표현식과 Stream (0) | 2022.03.20 |
[Java] 자바 프로그램의 구조 (0) | 2022.03.20 |
[Java] - 자바란? (0) | 2022.03.20 |