반응형
메서드 시그니처의 Java "패럴"?
C#에서 메서드에 파라미터 수를 제한하려면 메서드시그니처의 최종 파라미터를 a로 할 수 있습니다.params
메서드 파라미터가 배열처럼 보이지만 메서드를 사용하는 모든 사용자가 발신자가 원하는 만큼 해당 유형의 파라미터를 전달할 수 있도록 합니다.
Java가 비슷한 동작을 지원하는 것은 확실하지만, 방법을 찾을 수 없습니다.
Java에서는 varargs라고 불리며, 구문은 일반 파라미터와 비슷하지만 다음 유형 뒤에 줄임표("...")가 있습니다.
public void foo(Object... bar) {
for (Object baz : bar) {
System.out.println(baz.toString());
}
}
vararg 파라미터는 항상 메서드시그니처의 마지막 파라미터여야 합니다.이 파라미터는 해당 유형의 배열을 수신한 경우와 같이 액세스 됩니다(예:Object[]
(이 경우)를 참조해 주세요.
이렇게 하면 Java에서 효과가 있습니다.
public void foo(String parameter, Object... arguments);
3점을 더해야 합니다....
및 그varagr
매개 변수는 메서드 시그니처의 마지막이어야 합니다.
선답에 써있듯이varargs
라고 선언했습니다.ellipsis
(...)
또한 값 유형 및/또는 참조 유형을 전달하거나 혼합(구글 자동 상자 설정)할 수 있습니다.또한 method 파라미터를 배열로 사용할 수 있습니다.printArgsAlternate
아래 메서드를 참조하십시오.
데모 코드
public class VarargsDemo {
public static void main(String[] args) {
printArgs(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
printArgsAlternate(3, true, "Hello!", new Boolean(true), new Double(25.3), 'a', new Character('X'));
}
private static void printArgs(Object... arguments) {
System.out.print("Arguments: ");
for(Object o : arguments)
System.out.print(o + " ");
System.out.println();
}
private static void printArgsAlternate(Object... arguments) {
System.out.print("Arguments: ");
for(int i = 0; i < arguments.length; i++)
System.out.print(arguments[i] + " ");
System.out.println();
}
}
산출량
Arguments: 3 true Hello! true 25.3 a X
Arguments: 3 true Hello! true 25.3 a X
언급URL : https://stackoverflow.com/questions/519752/java-params-in-method-signature
반응형
'programing' 카테고리의 다른 글
sql에 두 개의 varchar를 곱하다 (0) | 2022.09.06 |
---|---|
태플을 목록으로 변환한 후 되돌리기 (0) | 2022.09.06 |
PHPUnit: 아사트Instance Of()가 작동하지 않습니다. (0) | 2022.09.06 |
Axios를 사용하여 폼에서 파일을 게시하는 방법 (0) | 2022.09.06 |
모든 테이블 및 해당 데이터 정렬을 표시하는 쿼리 (0) | 2022.09.06 |