배열 매개 변수 선언으로 인해이 발생하는 구문 오류 이 발생합니다. 그럼에도 불구하고 main 메소드는 String 대신 String []을 사용합니다 ... 어떻게이 불일치를 이해할 수 있습니까?Java의 주된 메소드가 String 대신에 String []을 사용합니다. 도트 점이
package domain.test;
import utilities.CConsole;
public class Tester {
public static void main(String[] args)
{
Test1 t = new Test1();
t.method1(0); // the array will exist but have a length of zero
t.method1(0, (Object[])null); // the array will not exist
t.method1(0, "a");
t.method1(0, "a", "b");
CConsole.pw.format("\n");
t.method2(0); // the array will exist but have a length of zero
t.method2(0, (String[])null); // the array will not exist
t.method2(0, "a");
t.method2(0, "a", "b");
CConsole.pw.format("\n");
}
}
class Test1 {
void method1(int number, Object... args) // Object[] causes syntax errors
{
if (args == null)
CConsole.pw.format("args == null\n");
else
{
CConsole.pw.format("args != null ");
CConsole.pw.format("args.length %d\n", args.length);
}
}
void method2(int number, String... args) // String[] causes syntax errors
{
if (args == null)
CConsole.pw.format("args == null\n");
else
{
CConsole.pw.format("args != null ");
CConsole.pw.format("args.length %d\n", args.length);
}
}
}
어떻게 불일치를 설명 할 수 있습니까?
컴파일하는 사람에게 다음이 포함됩니다.이 오류를 받으려면 method1()이 Object []를 사용하도록 변경하십시오.
요약 편집 : 강의가이 것으로 보입니다. 앤드류 이발사 (@ Andrew Barber)가 강조한 것처럼, String은 String과 구별됩니다. 보통 are not
을 서로 바꿔서 사용할 수 있으므로 같은 방식으로 취급하지 마십시오 (교환 가능한 것으로 보이는 이유를 명명 할 수 있음에도 불구하고). 메인()의 경우 은입니다. main()
의 경우 일부 사람들은이 설탕을 전화 할 수도 있습니다.
함수 인수에서'String []'을 사용하는 것이 유효합니다. 구문 오류가 발생하지 않습니다. 어떤 오류가 인쇄됩니까/ – birryree
아니요, 코드를 복사하여 시도하십시오. – H2ONaCl
구문 오류가 발생하는 이유는 무엇입니까? 'String []'을 매개 변수로 사용할 때 아무런 문제가 없습니다. – ryanprayogo