2010-03-31 7 views

답변

2

예, 주체가 공개 인 경우에만 허용

+5

... 또는 보호되거나 패키지가 비공개이거나 리플렉션을 사용하면 사적인 것일지라도이를 호출 할 수 있습니다. 사람들이 알아 차릴지도 모르는 사람들을 위해 –

0

확실히. 여기에 main을 반복적으로 호출하는 것을 보여주는 완전히 바보 같은 프로그램이 있습니다.

public class main 
{ 
    public static void main(String[] args) 
    { 
     for (int i = 0; i < args.length; ++i) 
     { 
      if (args[i] != "") 
      { 
       args[i] = ""; 
       System.out.println((args.length - i) + " left"); 
       main(args); 
      } 
     } 

    } 
} 
31

다른 클래스의 main 메서드를 호출하려면이 질문에 대한 이해를 전제로이 방법을 사용할 수 있습니다.

public class MyClass { 

    public static void main(String[] args) { 

     System.out.println("main() method of MyClass"); 
     OtherClass obj=new OtherClass(); 
    } 
    } 

    class OtherClass { 

    public OtherClass() { 

     // Call the main() method of MyClass 
     String[] arguments = new String[] {"123"}; 
     MyClass.main(arguments); 
    } 
    } 
+10

... 무한 루프를 만들 것입니다. – mmcrae

+2

@mmcrae 이것은 루프가 아닌 재귀입니다. 재귀는 결코 무한하다. – Saraph

+9

무엇을 기다려 ... 왜 재귀가 무한하지 않을까요? 스택을 날려 버릴 수는 있지만 실용적인 한계에 불과합니다. 기본 사례로 진행하지 않으면 (또는 기본 사례가없는 경우) 물론 수학 재귀가 무한 할 수 있습니다. – JPC

7

나는 귀하의 질문에 정확한 도착하면 ...

main() 메소드가 아래 클래스에 정의되어 있습니다 ...

public class ToBeCalledClass{ 

    public static void main (String args[ ]) { 
     System.out.println("I am being called"); 
    } 
} 

다른 클래스에서이 main 메소드를 호출 할 .

public class CallClass{ 

    public void call(){ 
     ToBeCalledClass.main(null); 
    } 
} 
+1

great.i는'main'인수로 무엇을 넣어야할지 궁금해하고있었습니다! 단순히 그것은 'null'이었다. – alex

관련 문제