메소드의 Java 변수 번호 또는 인수
가변 개수의 매개 변수를 허용하는 메소드를 선언 할 수 있습니까?
이 방법에서 변수에 여러 개의 매개 변수를 허용해야 함을 나타내는 기호에 사용 된 기호는 무엇입니까?
답 : varargs
맞습니다. 이에 대한 자세한 내용 은 varargs 에 대한 Oracle 안내서를 참조하십시오 .
예를 들면 다음과 같습니다.
void foo(String... args) {
for (String arg : args) {
System.out.println(arg);
}
}
로 불릴 수있는
foo("foo"); // Single arg.
foo("foo", "bar"); // Multiple args.
foo("foo", "bar", "lol"); // Don't matter how many!
foo(new String[] { "foo", "bar" }); // Arrays are also accepted.
foo(); // And even no args.
Variable number of arguments
가변 수의 인수를 메소드에 전달할 수 있습니다. 그러나 몇 가지 제한 사항이 있습니다.
- 변수의 변수 수는 모두 같은 유형이어야합니다
- 메소드 내에서 배열로 취급됩니다.
- 메소드의 마지막 매개 변수 여야합니다.
이러한 제한 사항을 이해하려면 다음 코드 스 니펫에서 정수 목록에서 가장 큰 정수를 리턴하는 데 사용 된 메소드를 고려하십시오.
private static int largest(int... numbers) {
int currentLargest = numbers[0];
for (int number : numbers) {
if (number > currentLargest) {
currentLargest = number;
}
}
return currentLargest;
}
Oracle Certified Associate Java SE 7 프로그래머 연구 가이드 2012
예, 가능합니다 :
public void myMethod(int...numbers) { ... }
다른 유형의 인수에는 3 점이 있습니다 .
public void foo(Object... x) {
String first = x.length > 0 ? (String)x[0] : "Hello";
int duration = x.length > 1 ? Integer.parseInt((String) x[1]) : 888;
}
그런 다음 전화
foo("Hii");
foo("Hii", 146);
보안을 위해 다음과 같이 사용하십시오. if (!(x[0] instanceof String)) { throw new IllegalArgumentException("..."); }
이 방법의 주요 단점은 선택적 매개 변수가 다른 유형 인 경우 정적 유형 검사를 잃는다는 것입니다. 더 많은 변형을 참조하십시오 .
예 ... Java 5부터 : http://java.sun.com/j2se/1.5.0/docs/guide/language/varargs.html
Java는 vargs
메소드 매개 변수를 허용 합니다.
public class Varargs
{
public int add(int... numbers)
{
int result = 1;
for(int number: numbers)
{
result= result+number;
} return result;
}
}
참고 URL : https://stackoverflow.com/questions/2330942/java-variable-number-or-arguments-for-a-method
'IT' 카테고리의 다른 글
TortoiseSVN을 사용하여 트렁크에서 분기로 또는 그 반대로 변경 사항을 어떻게 병합합니까? (0) | 2020.07.01 |
---|---|
모든 비트를 true로 설정하기 위해 -1을 사용하는 것이 안전합니까? (0) | 2020.07.01 |
Eclipse가 "JNI 공유 라이브러리를로드하지 못했습니다"라고보고 함 (0) | 2020.07.01 |
구아바 라이브러리 : 가장 유용하고 숨겨진 기능은 무엇입니까? (0) | 2020.07.01 |
R의 플롯에서 글꼴 크기를 늘리는 방법은 무엇입니까? (0) | 2020.07.01 |