2011-08-30 10 views
33

스프링 프레임 워크는 원하는만큼의 인수를 전달할 수있는 메소드를 사용합니다.무제한 인수가있는 Java 메소드

무제한의 데이터를 사용할 수있는 함수를 작성하고 싶습니다. 이 기능을 어떻게 불러 와서 읽을 수 있습니까? 또는 어떻게 정의 할 수 있습니까?

고마워요.

+0

해당 클래스가 있습니까? 어쩌면 정적 메인 (String [] args)과 같습니다. – jjchiw

+0

"무제한 데이터"를 정의하십시오. – pap

답변

93

varargs이라고합니다.

이 메서드를 사용하면 여러 가지 인수를 사용할 수 있습니다. 메서드에서 배열로 액세스 할 수 있습니다. 입니다. 컴파일러는

bar.foo(new String[] {"1", "2", "3"}); 

당신이

bar.foo("1", "2", "3"); 
4

, 당신은 또한 가변 인자 전에 방법에서 다른 인수를 가질 수 Bozho의 답변을 추가하려면 쓰기 대신 배열 생성을 숨 깁니다, 그래서 :

// foo(13, "foo", "bar", "baz"); 
// will print: 
// 13 - |foo||bar||baz| 
public void foo(int a, String... b) { 
    System.out.println(a + " - "); 

    for (String c : b) { 
     System.out.print("|" + c + "|"); 
    } 
} 

그러나 다른 유형의 인수를 사용할 수 없습니다. 작동하지 않습니다.

public void bar(String... b, int b); 
public void foo(int a, String... b, int b);