에서 앱 엔진 문서 , 줄임표 (무엇 JID...
이 방법 서명에 대한)은?
public MessageBuilder withRecipientJids(JID... recipientJids)
이 세 점의 기능은 무엇입니까?
답변
그것들은 Java varargs입니다. 특정 유형의 객체 (이 경우 JID 유형)를 여러 개 전달할 수 있습니다.
귀하의 예에서 다음 함수 호출이 유효합니다.
MessageBuilder msgBuilder; //There should probably be a call to a constructor here ;)
MessageBuilder msgBuilder2;
msgBuilder.withRecipientJids(jid1, jid2);
msgBuilder2.withRecipientJids(jid1, jid2, jid78_a, someOtherJid);
자세한 내용은 여기를 참조하십시오 :
http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
답변
메서드 내 에서 줄임표 또는 varargs 를 사용하는 방법은 마치 마치 배열 인 것입니다.
public void PrintWithEllipsis(String...setOfStrings) {
for (String s : setOfStrings)
System.out.println(s);
}
이 메소드는 다음과 같이 호출 할 수 있습니다.
obj.PrintWithEllipsis(); // prints nothing
obj.PrintWithEllipsis("first"); // prints "first"
obj.PrintWithEllipsis("first", "second"); // prints "first\nsecond"
내부 PrintWithEllipsis
에서 유형 setOfStrings
은 문자열 배열입니다. 따라서 컴파일러에 약간의 작업을 저장하고 배열을 전달할 수 있습니다.
String[] argsVar = {"first", "second"};
obj.PrintWithEllipsis(argsVar);
들면 가변 인자 방법, 시퀀스 파라미터는 동일한 유형의 배열 인 것으로 취급된다. 따라서이 예제에서와 같이 두 시그니처가 시퀀스 하나만 선언하고 다른 하나는 배열을 선언한다는 점만 다릅니다.
void process(String[] s){}
void process(String...s){}
컴파일 타임 오류가 발생합니다.
출처 : 기술 용어가 공통 용어 가 아닌 Java 프로그래밍 언어 사양 .variable arity parameter
varargs
답변
세 점 (…) 표기법은 실제로 수학에서 빌려온 것으로 “… 등”을 의미합니다.
Java에서 사용하는 경우을 의미합니다 varargs
. 즉, 메소드 호출에 여러 개의 인수를 추가 할 수 있습니다. 유일한 제한은 varargs
메소드 서명의 끝에 있어야하며 메소드 당 하나만있을 수 있다는 것입니다.
답변
그것들은 varargs
많은 수의 인수를받는 메소드를 만드는 데 사용됩니다.
예를 들어 PrintStream.printf 메소드는 사용할 인수가 몇 개인 지 모르기 때문에이 메소드를 사용합니다.
인수의 최종 위치로만 사용할 수 있습니다.
varargs
Java 1.5 에 추가되었습니다
답변
이는 메소드 가 유형 의 가변 개수의 인수 ( “varargs”)를 허용 함을 의미합니다 JID
. 방법 내에서 recipientJids
제시됩니다.
이 방법은 선택적으로 둘 이상의 인수를 자연스럽게 처리 할 수있는 메소드에 유용하며 작성의 추함없이 하나, 둘 또는 세 개의 매개 변수를 동일한 메소드에 전달할 수있는 호출을 작성할 수 있습니다. 즉시 배열.
또한 sprintf
C 와 같은 관용구를 가능하게합니다 . String.format()
예를 들어 참조하십시오 .