繁体   English   中英

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

[英]Can a main() method of class be invoked from another class in java

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

例如

class class1{

  public static void main(String []args){

  }

}

class class2{

  public static void main(String []args){
      class1.main();
  }

}

如果你想调用另一个类的 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);
    }
}

如果我答对了你的问题...

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);
    }
}

是的,但前提是 main 被声明为 public

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

据我了解,问题与递归无关。 我们可以很容易地在你的类中调用另一个类的main方法。 以下示例说明了静态和按对象调用。 注意Class2 static一词的省略

class Class1{
    public static void main(String[] args) {
        System.out.println("this is class 1");
    }    
}

class Class2{
    public void main(String[] args) {
        System.out.println("this is class 2");
    }    
}

class MyInvokerClass{
    public static void main(String[] args) {

        System.out.println("this is MyInvokerClass");
        Class2 myClass2 = new Class2();
        Class1.main(args);
        myClass2.main(args);
    }    
}

输出应该是:

这是包装类

这是 1 级

这是 2 级

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

    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM