...은 가변인자 선언을 의미한다.
String...vargs 매개변수가 여러 개가 되어도 vargs로 받아주겠다. String형 인스턴스를 참조변수 vargs로 다 받아주겠다.
showAll에 전달되는 애들이 몇 개든 배열로 묶이게 된다. )한 개여도-배열 인스턴스 안에 하나가 담긴 꼴
실제로 showAll에 전달되는 것은 해당 배열의 참조값이다.
String...vargs는 실제로는 배열의 참조변수 vargs라고 볼 수 있다.
배열의 참조변수는 길이에 상관없이 참조가 가능하다.
참조변수 vargs가 배열을 가리키게 된다.
결국 가변인자 선언은 컴파일러가 다음과 같이 처리해서 String[] vargs로 바뀌게 된다. String 인스턴스를 배열로 전달 받을 수 있도록 String 배열의 참조변수 선언으로 바꾼 것
실제로 컴파일러는 "Box"에서 new String[]{"Box"}로 코드를 바꾼다.
결론적으로 가변인자 선언은 배열을 기반으로 선언된다.
[JAVA] 윤성우 자바 네스티드(Nested) 클래스와 이너(Inner) 클래스 ③ (0) | 2022.11.13 |
---|---|
자바 getter setter 복습 노트 (0) | 2022.09.21 |
25-1. 열거형 ② (0) | 2022.09.12 |
25-1. 열거형 ① (0) | 2022.09.10 |
익명(anonymous) 내부 클래스 참고 자료 및 정리 (0) | 2022.09.10 |
댓글 영역