可以在java的另一个类中调用main()方法

问题描述:

可以在java中的另一个类中调用main()类的方法吗?可以在java的另一个类中调用main()方法

是的,但只有当宣布主要是

+5

......或受保护的,或包私人的,或者你用反射做一些棘手的事情,尽管它是私人的,但它可以被调用。 – 2010-03-31 04:13:35

当然。这是一个完全愚蠢的程序,演示递归调用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); 
      } 
     } 

    } 
} 

是的只要它是公开的,并且您传递了正确的参数。 查看此链接了解更多信息。 http://www.codestyle.org/java/faq-CommandLine.shtml#mainhost

如果你想调用另一个类的主要方法,你可以这样做,假设我理解了这个问题。

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 2014-11-20 16:28:11

+2

@mmcrae这是递归,而不是循环。递归永远不会无限。 – Saraph 2014-12-31 02:04:45

+9

等待什么...为什么递归不是无限的?你可能会打击你的堆栈,但这只是一个实际的限制,如果你从不向基本案例进展(或者不存在基本案例),数学递归当然可以是无限的。 – JPC 2016-02-08 18:55:44

,如果我得到你的问题正确...

main()方法在下面的类中定义...

public class ToBeCalledClass{ 

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

要调用此方法主要另一类。

public class CallClass{ 

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

great.i想知道作为'主要'论点应该怎么说!只是它是'空' – alex 2016-08-17 14:03:09