본문 바로가기

java(자바)

java 가변인자(varargs) 에 대해서

반응형

자바 1.5에서 가변 인자 메소드라고 부르는 것이 추가되었습니다 

가변 인자란 쉽게 생각하면 인자(파라미터) 값이 변한다는 의미입니다 

//일반 적인 파라메터의 모양
public class Varargs {
	public void test1(String str1 , String str2){
    	(생략) 	
    }
}

이런 식으로 하나하나 타입을 지정해 주고 호출할 때 값을 넣어 줘야 했습니다 

이 test 1 메소드에 가변 인자를 이용해서 수정한다면 

public class Varargs{
	public void test1(String ...){
    	(생략) 
    }
}

이런 식으로 가변 인자를 이용해서 수정을 할 수 있습니다 

하지만 성능이 중요하다면 가변 인자(varargs)를 사용하실 때에 신중하게 사용하셔야 합니다 

이유는 test 1() 메소드가 실행이 될 때마다 내부에서 매개변수에 맞게 배열을 생성하고 초기 화 되기 때문에 오버헤드를 감당할 수 없다면 다른 방법을 이용해야 합니다 

 

가변 인자를 오버 로딩을 많이 대체할 수 있습니다 

정말 가벼운 건 바로 아래 코드처럼 사용하셔도 좋지만 많아지면 많아질수록 성능이 저하되므로 그아래의 방법을 사용하시는 것이 더 좋습니다 

//바로 varargs를 이용하지 마시고 
public void test1(String ...)
//x 
//1~3 까지는 작성을 한후에 사용하시면 더 좋습니다

public void test1(String str1)


public void test1(String str1,String str2)


public void test1(String str1,String str2,String str3)

public void test1(String str1, String str2, String str3, String ...rest)
//O

 

 

다만 

public void test1(String ...,int ....)     //한개의 메소드에 두개의 가변인자는 삽입할 수 없습니다 


public void test2(String ...,String ...)  // 위와 같은 이유로 사용하시면 안됩니다

 

부족한 부분을 댓글이나 쪽지로 알려주시면 많은 도움이 됩니다

 

반응형

'java(자바)' 카테고리의 다른 글

java 인터페이스(interface) 사용 방법  (0) 2022.01.18
charAt() 메소드에 대해서  (2) 2022.01.17