[java] 가변 인자
2016. 6. 23. 17:29ㆍ프로그래밍/JAVA
- 목차
가변인자 문법은 JDK5.0 버전부터 추가 되었다.
메소드를 호출하는데 인자가 고정적이지 않을 때 가변인자 문법을 사용하면 배열이나 Collection을 사용하지 않아도 된다.
사용법
사용법은 간단하다.
메소드에서 매개변수값 앞에 …만 붙여주면 된다.
class A{
private String a;
public A(String a) {
this.a = a;
}
public String toString() {
return "A [a=" + a + "]";
}
}
public class ArgsTest {
public static void main(String[] args) {
display("헬로우","안녕","반가워");
aDisplay(new A("hello"), new A("hi"), new A("nicetomeetyou"));
}
static void display(String ... args){
for(String str : args){
System.out.println(str);
}
}
static void aDisplay(A ... args){
for(A a : args){
System.out.println(a);
}
}
}
// 결과
// 헬로우
// 안녕
// 반가워
// A [a=hello]
// A [a=hi]
// A [a=nicetomeetyou]
사실 가변인자 원리는 컴파일러가 가변인자를 만나면 매개변수를 배열로 변환해준다.
- 원본 : public static void display(String… strs)
- 컴파일러 변환 후 : public static void display(String as[])
메서드 호출 시 인자들을 이용해서 배열로 만들어 준다.
- 원본 : display(“Hello”, “World”, “Korea”);
- 컴파일러 변환 후 : display(new String[] {“Hello”, “World”, “Korea” });
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] 10.조건문 - switch (0) | 2016.11.10 |
---|---|
[JAVA] 9. 조건문 - if (0) | 2016.11.10 |
[JSON] Array 형태의 JSON String을 Java의 ArrayList generic형태로 변환하기 (0) | 2016.01.08 |
Bing Translator API 사용하기 (0) | 2015.12.16 |
[정규표현식] java Regular Expression (0) | 2015.12.10 |