2015-01-11 3 views
0

메소드 varargs가 main 메소드 본문과 분리되어 있어야하는 이유는 무엇입니까? 아래의 코드는 정확하지만 왜 main 메소드 본문에 varargs 메소드 선언을 넣을 수 없습니까?왜 메소드 varargs가 java의 개별 블록에 있어야합니까?

public class TryVariableArgumentList { 

    public static void main(String[] args) { 
     x("first","second"); 

     public static void x(String... list) { 
      for (String y : list) 
       System.out.println(y); 
     } 
    } 
} 
+1

[Java의 주된 용도로 가변 길이 인수 목록을 사용할 수없는 이유는 무엇입니까?] (http://stackoverflow.com/questions/2201696/why-doesnt-javas-main-use-a-variable-length- 인수 목록) –

답변

4

방법

public static void main(String... args) { 
    //code 
} 

도 완벽하게 합법적이다

코드의 문제가

에 Compilable 코드가 있어야한다 자체가 자바에서 허용되지 않는 방법 내부 메소드의 선언입니다 이처럼

class TryVariableArgumentList { 
    public static void main(String[] args) { 
     x("first","second"); 
    } 

    public static void x(String... list) { 
     for(String y : list) 
      System.out.println(y); 
    } 
} 

당신이 읽은 것을 게시 할 필요가 있다고 생각합니다. 아마도 당신이 뭔가 잘못 해석했기 때문일 것입니다.

희망이 있습니다.

+0

감사합니다. 내 코드가 바뀌 었습니다. 컴파일되지 않은 이유를 말해 줄 수 있습니까? –

+1

메소드 내부의 메소드가 Java에서 허용되지 않습니다. – Vihar

+0

편집 된 내 대답 tooo – Vihar

0

메소드 x는 메소드 main에 선언되어 있습니다. 이것은 합법적이지 않습니다. main 외부에 x를 선언하십시오.

+0

너희 고마워. –