2010-03-31 6 views

risposta

2

sì, ma solo se il principale è dichiarato pubblico

+5

... o protetto, o pacchetto privato, oppure fai cose difficili con la riflessione per permetterti di essere invocato nonostante sia privato. –

0

Sicuro. Ecco un programma completamente sciocco che dimostra chiamando main in modo ricorsivo.

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

Se si desidera chiamare il metodo principale di un'altra classe, è possibile farlo in questo modo assumendo che io comprenda la domanda.

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

per coloro che potrebbero o meno notare ... questo creerà un ciclo infinito – mmcrae

+2

@mmcrae Questa è la ricorsione, non il ciclo. La ricorsione non è mai infinita. – Saraph

+9

aspetta cosa ... perché la ricorsione non sarebbe infinita? Potresti far saltare il tuo stack, ma questa è solo una limitazione pratica, la ricorsione matematica può naturalmente essere infinita se non fai mai progressi verso un caso base (o nessun caso base esiste). – JPC

7

se ho ricevuto la tua domanda corretta ...

main() metodo è definito nella classe sotto ...

public class ToBeCalledClass{ 

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

si desidera chiamare questo metodo principale di un'altra classe .

public class CallClass{ 

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

great.i si chiedeva cosa mettere come argomento 'main'! semplicemente era 'null' – alex

Problemi correlati