我想知道创建额外的主要方法会对您的代码产生什么影响。

例如,

public class TestClass {
    public static void main (String[] args){
        TestClass foo = new TestClass();
    }
}

程序最初启动后,将创建foo,并且其中将包含另一个公共(public)main方法。这会导致任何错误吗?

最佳答案

不会造成任何错误。仅仅因为初始化一个对象,并不意味着将执行main方法。 Java仅会在开始时调用传递给它的类的main方法,例如
>java TestClass
但是,请执行以下操作:

public class TestClass
{
 public static void main (String[] args)
 {
  TestClass foo = new TestClass();
  foo.main(args);
 }
}

要么
public class TestClass
{
 public TestClass()
 {
   //This gets executed when you create an instance of TestClass
   main(null);
 }

 public static void main (String[] args)
 {
  TestClass foo = new TestClass();
 }
}

这将导致StackOverflowError,因为您正在显式调用TestClass的main方法,然后将再次,一次又一次,以及...调用main方法。

如有疑问,请进行测试:-)

关于java - Java中的多个main()方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4754058/

10-11 14:46