반응형
차이 fn (문자열… 인수) 대 fn (문자열 [] 인수)
이 구문이 유용한 이유 :
function(String... args)
글쓰기와 같나요?
function(String[] args)
이 메서드를 호출하는 동안에 만 차이가 있거나 다른 기능이 관련되어 있습니까?
둘의 유일한 차이점은 함수를 호출하는 방법입니다. String var args를 사용하면 배열 생성을 생략 할 수 있습니다.
public static void main(String[] args) {
callMe1(new String[] {"a", "b", "c"});
callMe2("a", "b", "c");
// You can also do this
// callMe2(new String[] {"a", "b", "c"});
}
public static void callMe1(String[] args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
public static void callMe2(String... args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
차이점은 메서드를 호출 할 때만 다릅니다. 두 번째 양식은 배열로 호출해야하며 첫 번째 양식은 배열 (두 번째 양식과 마찬가지로 예, Java 표준에 따라 유효 함) 또는 문자열 목록 (쉼표로 구분 된 여러 문자열)을 사용하여 호출 할 수 있습니다. 인수가 전혀 없습니다 (두 번째 인수에는 항상 하나가 있어야하며 최소한 null이 전달되어야 함).
통 사적으로 설탕입니다. 실제로 컴파일러는
function(s1, s2, s3);
으로
function(new String[] { s1, s2, s3 });
내부적으로.
varargs ( String...
)를 사용하면 다음 과 같이 메서드를 호출 할 수 있습니다.
function(arg1);
function(arg1, arg2);
function(arg1, arg2, arg3);
배열 ( String[]
) 로는 할 수 없습니다.
첫 번째 함수를 다음과 같이 호출합니다.
function(arg1, arg2, arg3);
두 번째는 :
String [] args = new String[3];
args[0] = "";
args[1] = "";
args[2] = "";
function(args);
수신자 크기에서 String 배열을 얻습니다. 차이점은 호출 측에만 있습니다.
class StringArray1
{
public static void main(String[] args) {
callMe1(new String[] {"a", "b", "c"});
callMe2(1,"a", "b", "c");
callMe2(2);
// You can also do this
// callMe2(3, new String[] {"a", "b", "c"});
}
public static void callMe1(String[] args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
public static void callMe2(int i,String... args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
}
참고 URL : https://stackoverflow.com/questions/301563/difference-fnstring-args-vs-fnstring-args
반응형
'code' 카테고리의 다른 글
PreventDefault ()와 Return false를 사용하는 경우 (0) | 2020.11.27 |
---|---|
onClick에 반응하고 preventDefault () 링크 새로 고침 / 리디렉션? (0) | 2020.11.27 |
TSQL 사용자 정의 함수에서 PRINT를 어떻게 출력합니까? (0) | 2020.11.27 |
팝업 메시지 상자 (0) | 2020.11.26 |
thead와 tbody 사이의 간격 (0) | 2020.11.26 |